搭建php Laravel架構教程詳解

來源:互聯網
上載者:User

一、安裝 Composer

Laravel 架構使用 Composer(PHP包管理工具,參考 Composer 中文文檔)來管理代碼依賴性。 首先,你需要下載 Composer 的 PHAR 打包檔案( composer.phar ),下載完成後把它放在項目目錄下或者放到 usr/local/bin 目錄下以便在系統中全域調用。在Windows作業系統中,你可以使用 Composer 的Windows安裝工具。

二、安裝 Laravel

方法一:通過 Laravel 安裝器安裝

首先,通過 Composer 下載 Laravel 安裝器。
composer global require "laravel/installer=~1.1"
請確保把 ~/.composer/vendor/bin 路徑添加到 PATH 環境變數裡, 這樣laravel 可執行檔才能被命令列找到, 以後您就可以在命令列下直接使用 laravel 命令.

安裝成功後, 可以使用命令 laravel new 在您指定的目錄下建立一份全新安裝的 Laravel。例如,laravel new blog 將會在目前的目錄下建立一個叫 blog 的目錄, 此目錄裡面存放著全新安裝的 Laravel 以及其依賴的工具包。這種安裝方法比通過 Composer 安裝要快許多。

方法二:通過 Composer 的 create-project 命令安裝 Laravel

還可以通過在命令列執行 Composer 的 create-project 命令來安裝Laravel:
composer create-project laravel/laravel --prefer-dist

方法三:通過下載 Laravel 包安裝

Composer 安裝完成後,下載最新版Laravel架構,把它解壓縮到你伺服器上的一個目錄中。然後在 Laravel 應用的根目錄下運行命令列命令 php composer.phar install (或者 composer install )來安裝所有的架構依賴包。在此過程中,為了成功完成安裝,你需要在伺服器上安裝好 Git。

當 Laravel 架構安裝好後,你可以使用命令列命令 php composer.phar update 來更新架構。

三、對伺服器環境的要求

Laravel 架構對系統內容有如下要求:
    PHP >= 5.4
    MCrypt PHP 擴充
從 PHP 5.5 版本開始,針對某些作業系統的安裝包需要你自己手工安裝 PHP 的 JSON 擴充模組。如果你使用的是 Ubuntu,可以通過, apt-get install php5-json 命令直接安裝。

四、展示

必要外掛程式安裝及配置
我們使用著名的Sentry外掛程式來構建登入等許可權驗證系統。

開啟 ./composer.json ,變更為:


"require": {
 "laravel/framework": "4.2.*",
 "cartalyst/sentry": "2.1.4"
},


然後,在項目根目錄下運行命令


composer update


然後稍等一會兒,它會提示 cartalyst/sentry 2.1.4安裝完成。

 


同理,我們將安裝一個開發用的非常強大的外掛程式,way/generators,這是它在composer庫中的名字。在 composer.json中增加:


"require-dev": {
    "way/generators": "~2.0"
},和“require”同級,放在下面,不是裡面哦~。

 


運行 composer update,之後在 ./app/config/app.php 中 恰當的位置 增加配置:


'Way\Generators\GeneratorsServiceProvider'安裝完成過,在命令列中運行 php artisan,就可以看到這個外掛程式帶來的許多新的功能。

 


有人會問,為什麼用了國內鏡像還是如此之慢?其實composer在update的時候最慢的地方並不是下載,而是下載之前的依賴關係解析,由於Laravel依賴的composer包非常之多,PHP指令碼的執行速度又比較慢,所以每次update等個兩三分鐘很正常,習慣就好。

 


3. 資料庫建立及遷移

 

資料庫設定檔位於 ./app/config/database.php,我們需要把“connections”中的“mysql”項改成我們需要的配置。下面是我的配置:


'mysql' => array(
 'driver'    => 'mysql',
 'host'      => 'localhost',
 'database'  => 'laravel',
 'username'  => 'root',
 'password'  => 'password',
 'charset'   => 'utf8',
 'collation' => 'utf8_unicode_ci',
 'prefix'    => 'l4_',
),


prefix為表首碼,這個Laravel會幫我們自動維護,大膽寫上不用擔心。

 


這時候你需要去資料庫建立此資料庫,然後在命令列中輸入:


php artisan migrate --package=cartalyst/sentry


執行完成後,你的資料庫裡就有了5張表,這是sentry自己建立的。sentry在Laravel4下的配置詳情見 https://cartalyst.com/manual/sentry#laravel-4,我大致說一下:

 


在 ./app/config/app.php 中 相應的位置 分別增加以下兩行:


'Cartalyst\Sentry\SentryServiceProvider','Sentry' => 'Cartalyst\Sentry\Facades\Laravel\Sentry',許可權系統的資料庫配置到此為止。

 


我們的簡單blog系統將會有兩種元素,Article和Page,下面我們將建立articles和pages資料表,命令列運行:

php artisan migrate:make create_articles_table --create=articles
php artisan migrate:make create_pages_table --create=pages


這時候,去到 ./app/database/migrations,將會看到多出了兩個檔案,這就是資料庫遷移檔案,過一會我們將操作artisan將這兩個檔案描述的兩張表變成資料庫中真實的兩張表,放心,一切都是自動的。

下面,在***_create_articles_table.php中修改:


Schema::create('articles', function(Blueprint $table)
{
 $table->increments('id');
 $table->string('title');
 $table->string('slug')->nullable();
 $table->text('body')->nullable();
 $table->string('image')->nullable();
 $table->integer('user_id');
 $table->timestamps();
});


在***_create_pages_table.php中修改:


Schema::create('pages', function(Blueprint $table)
{
 $table->increments('id');
 $table->string('title');
 $table->string('slug')->nullable();
 $table->text('body')->nullable();
 $table->integer('user_id');
 $table->timestamps();
});


下面,就是見證奇蹟的時刻,在命令列中運行:


php artisan migrate


這時候資料庫中的articles表和pages表就建立完成了。

 


4. 模型 Models
接下來我們將接觸Laravel最為強大的部分,Eloquent ORM,真正提高生產力的地方,借用庫克的話說一句,鵝妹子英!

我們在命令列運行下列語句以建立兩個model:


php artisan generate:model article
php artisan generate:model page這時候,在 app/models/ 下就出現了兩個檔案 Article.php 和 Page.php,這是兩個 Model 類,他們都繼承了Laravel提供的核心類 \Eloquent。這裡需要強調一下,用命令列的方式建立檔案,和自己手動建立檔案沒有任何區別,你也可以嘗試自己建立這兩個 Model 類哦。

Model 即為 MVC 中的 M,翻譯為 模型,負責跟資料庫互動。在 Eloquent 中,資料庫中每一張表對應著一個 Model 類。

如果你從其他架構轉過來,可能對這裡一筆帶過的 Model 部分很不適應,沒辦法,是因為 Eloquent 實在太強大了啦,真的沒什麼好做的,繼承一下 Eloquent 類就能實現很多很多功能了。詳見 Eloquent 系列教程:深入理解 Laravel Eloquent(一)——基本概念及用法

5. 資料庫填充

分別運行下列命令:


php artisan generate:seed page
php artisan generate:seed article這時,在 ./app/database/seeds/ 下就出現了兩個新的檔案,這就是我們的資料庫填充檔案。Laravel提供自動資料庫填充,十分方便。

generator預設使用Faker\Factory作為隨機資料產生器,所以我們需要安裝這個composer包,地址是 https://packagist.org/packages/fzaninotto/faker ,跟generator一起安裝在 require-dev 中即可。具體安裝請自行完成,可以參考Sentry和Generator,這是第一次練習。

 


接下來,分別更改這兩個檔案:


Article::create([
  'title'   => $faker->sentence($nbWords = 6),
  'slug'    => 'first-post',
  'body'    => $faker->paragraph($nbSentences = 5),
  'user_id' => 1,
]);Page::create([
  'title'   => $faker->sentence($nbWords = 6),
  'slug'    => 'first-page',
  'body'    => $faker->paragraph($nbSentences = 5),
  'user_id' => 1,
]);


然後,我們需要在 DatabaseSeeder.php 中增加兩行,讓Laravel在seed的時候會帶上我們新增的這兩個seed檔案。


$this->call('ArticleTableSeeder');
$this->call('PageTableSeeder');


下面就要真正的把資料填充進資料庫了:


php artisan db:seed操作完成以後去資料庫看看,資料已經填充進去了,article和page各10行。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.