學習Laravel-5(一)

開始學習
1. 安裝
許多人被攔在了學習 Laravel 的第一步:安裝。並非由於安裝有多複雜,而是由於【衆所周知的緣由】。在此我推薦一個 composer 全量中國鏡像:http://pkg.phpcomposer.com/ 。啓用 Composer 鏡像服務做爲本教程的第一項小做業請自行完成哦。

鏡像配置完成後,在終端(Terminal 或 CMD)裏切換到你想要放置該網站的目錄下,運行命令:learnlaravel5項目文件名稱
    
    composer create-project laravel/laravel learnlaravel5 5.2.31
php

中間可能會遇到函數禁用問題
        The Process class relies on proc_open, which is not available on your PHP installation.

解決方法
    在php.ini裏面去掉 proc_open

2. 運行
建立站點,定位到learnlaravel5/public
html

(配置站點以及添加站點到本地服務就很少講了)
配置完成後,learnlaravel5/storage添加可寫權限nginx

打開站點:laravel

這時候你可能要問了:爲何頁面是一片空白?請使用開發者工具查看網絡請求,只要是 200 狀態就說明運行成功了,空白是由於這個頁面引用了 Google Fontsweb

3. 體驗 Auth 系統

Laravel 利用 PHP5.4 的新特性 trait 內置了很是完善好用的簡單用戶登陸註冊功能,適合一些不須要複雜用戶權限管理的系統,例如公司內部用的簡單管理系統。shell

激活這個功能很是容易,運行如下命令:數據庫

php artisan make:auth

生成很容易,一條命令,但問題是訪問時卻看不到登陸驗證頁面??404?vim


 

                                                                                                        404 某某某緩存

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------網絡

                             nginx



看了下官方文檔,原來是URL重寫的問題,修改一下 nginx的配置文件vim www.learnlaravel5.hk.conf:

location / {
 try_files $uri $uri/ /index.php?$query_string; }

 

好,欣賞一下一條命令生成的 auth吧:

4. 鏈接數據庫

接下來咱們要鏈接數據庫了,請自行準備好 MySQL 服務哦。

a. 修改配置

不出意外的話,learnlaravel5 目錄下已經有了一個 .env 文件,若是沒有,能夠複製一份 .env.example 文件重命名成 .env,修改下面幾行的值:

php artisan migrate

咱們獲得了以下結果:

註冊用戶

註冊成功,頁面顯示

 

 

 

 

登陸成功後

 

c. migration 是啥?

打開 learnlaravel5/database/migrations/2014_10_12_000000_create_users_table.php 文件,你確定能一眼看出它的做用:用 PHP 描述數據庫構造,而且使用命令行一次性部署全部數據庫結構。

5. 使用 Laravel 的「葵花寶典」:Eloquent

Eloquent 是 Laravel 的 ORM,是 Laravel 系統中最強大的地方,沒有之一。當初 Laravel 做者在開發初版的時候花了整整三分之一的時間才搞出來 Eloquent。固然,「欲練此功,必先自宮」,Eloquent 也是 Laravel 中最慢的地方,迄今沒法解決。(路由、自動載入、配置分散、視圖引起的性能問題都經過緩存幾乎完全解決了)

a. Eloquent 是什麼

Eloquent 是 Laravel 內置的 ORM 系統,咱們的 Model 類將繼承自 Eloquent 提供的 Model 類,而後,就天生具有了數十個異常強大的函數,今後想幹啥事兒都是一行代碼就搞定。

b. 怎麼用?

咱們使用 Artisan 工具新建 Model 類及其附屬的 Migration 和 Seeder(數據填充)類。

運行如下命令:

  php artisan make:model Article

去看看你的 app 目錄,下面是否是多了一個 Article.php 文件?那就是 Artisan 幫咱們生成的 Model 文件:

  namespace App;  use Illuminate\Database\Eloquent\Model;  class Article extends Model {  // }

如此簡潔有力的代碼,隱藏了背後極高的難度和巨大的複雜度,讓咱們閉上眼睛,靜靜地感覺 Laravel 的優雅吧 (~ ̄▽ ̄)~

6. 使用 Migration 和 Seeder

接下來咱們生成對應 Article 這個 Model 的 Migration 和 Seeder。

a. 使用 artisan 生成 Migration

在 learnlaravel5 目錄下運行命令:

成功以後打開 learnlaravel5/database/migrations,你會發現有一個名爲 2*****_create_article_table 的文件被建立了。咱們修改他的 up 函數爲:

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

這幾行代碼描述的是 Article 對應的數據庫中那張表的結構。
Laravel 默認 Model 對應的表名是這個英文單詞的複數形式,在這裏,就是 articles。
接下來讓咱們把 PHP 代碼變成真實的 MySQL 中的數據表,運行命令:
  php artisan migrate

 

b. 使用 artisan 生成 Seeder

Seeder 是咱們接觸到的一個新概念,字面意思爲播種機。Seeder 解決的是咱們在開發 web 應用的時候,須要手動向數據庫中填入假數據的繁瑣低效問題。

運行如下命令建立 Seeder 文件:

php artisan make:seeder ArticleSeeder

咱們會發現 learnlaravel5/database/seeds 裏多了一個文件 ArticleSeeder.php,修改此文件中的 run 函數爲:

public function run() {  DB::table('articles')->delete();   for ($i=0; $i < 10; $i++) {  \App\Article::create([  'title' => 'Title '.$i,  'body' => 'Body '.$i,  'user_id' => 1,  ]);  } }
上面代碼中的  爲命名空間絕對引用。\App\Article

接下來咱們把 ArticleSeeder 註冊到系統內。修改 learnlaravel5/database/seeds/DatabaseSeeder.php 中的 run 函數爲:

ArticleSeeder::class); }

因爲 database 目錄沒有像 app 目錄那樣被 composer 註冊爲 psr-4 自動加載,採用的是 psr-0 classmap 方式,因此咱們還須要運行如下命令把 ArticleSeeder.php 加入自動加載系統,避免找不到類的錯誤:

composer dump-autoload

而後執行 seed:

php artisan db:seed

你應該獲得以下結果:

這時候刷新一下數據庫中的 articles 表,會發現已經被插入了 10 行假數據:

相關文章
相關標籤/搜索