在終端CMD裏切換到你想要放置該網站的目錄下(如 d:\project\laravel),運行命令php
composer create-project laravel/laravel learnlaravel5 ^5.5
而後,稍等片刻,當前目錄下就會出現一個叫 learnlaravel5 的文件夾,安裝完成啦~html
2、運行mysql
一、若是想要在wamp下運行,把laravel項目安裝在wamp下的www目錄下,例如個人wamp安裝路徑是D:\soft\wamp64,laravel
把laravel放在D:\soft\wamp64\www下,而後瀏覽器打開localhost,你會發現你的項目在1標示處,在2標示處添加一個新的虛擬機,配置laravelgit
入口路徑,添加好後虛擬機會出如今3標示處github
點擊laravel.test.com,便可運行laravelweb
若是你在本地安裝了 PHP,而且想使用 PHP 內置的開發服務器來爲你的應用程序提供服務,那就使用 Artisan 命令 serve
。這個命令會在 http://localhost:8000
上啓動開發服務器:sql
切換到項目安裝目錄 d:/project/learnlaravel5,執行 php artisan serve
便可在瀏覽器輸入http://127.0.0.1:8000/打開laravel了shell
3、體驗 Auth 系統數據庫
Laravel 利用 PHP5.4 的新特性 trait 內置了很是完善好用的簡單用戶登陸註冊功能,適合一些不須要複雜用戶權限管理的系統,例如公司內部用的簡單管理系統。
激活這個功能很是容易,運行如下命令:
php artisan make:auth
訪問 http://127.0.0.1:8000/login
,看到如下頁面:
4、鏈接數據庫
不出意外的話,learnlaravel5 目錄下已經有了一個 .env 文件,若是沒有,能夠複製一份 .env.example 文件重命名成 .env,修改下面幾行的值:
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel5
DB_USERNAME=root
DB_PASSWORD=password
推薦新建一個名爲 laravel5 的數據庫(編碼設置爲 utf8mb4),而且使用 root 帳戶直接操做,下降學習數據庫的成本。
b. 進行數據庫遷移(migration)
運行命令:
php artisan migrate
咱們獲得了以下結果:
» php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table
數據庫遷移成功!mysql裏生成表以下
而後在http://127.0.0.1:8000/register裏註冊一個用戶,zxm/123456,成功後顯示
打開 learnlaravel5/database/migrations/2014_10_12_000000_create_users_table.php
文件,你確定能一眼看出它的做用:
用 PHP 描述數據庫構造,而且使用命令行一次性部署全部數據庫結構。
小提示:修改後env文件有時註冊時會報
Access denied for user 'homestead'@'localhost'
錯誤,解決方法:
一、檢查env文件是否更改正確
二、重啓服務
五. 使用 Laravel 的ORM:Eloquent
Eloquent 是 Laravel 的 ORM,是 Laravel 系統中最強大的地方,沒有之一。當初 Laravel 做者在開發初版的時候花了整整三分之一的時間才搞出來 Eloquent,Eloquent 也是 Laravel 中最慢的地方,迄今沒法解決。(路由、自動載入、配置分散、視圖引起的性能問題都經過緩存幾乎完全解決了,Composer Autoload 巨量的性能消耗也被 PHP7 手起刀落解決了)
a. Eloquent 是什麼
Eloquent 是 Laravel 內置的 ORM 系統,咱們的 Model 類將繼承自 Eloquent 提供的 Model 類,而後,就天生具有了數十個異常強大的函數,今後想幹啥事兒都是一行代碼就搞定。
通過了三年多的大規模使用,我發現 Eloquent 另闢蹊徑採用和 Java 技術徹底不一樣的思路解決了多人開發耦合太重的問題:數據庫相關操做所有用一句話解決,Model 中不寫共用函數,大幅下降了 bug 概率。什麼?你說性能?軟件工程研究的對象是人,性能的優先級比代碼格式規範都低好嘛。我時刻謹記:代碼是寫給人看的,只是剛好能運行。
咱們使用 Artisan 工具新建 Model 類及其附屬的 Migration 和 Seeder(數據填充)類。
運行如下命令:
php artisan make:model Article
去看看你的 app 目錄,下面是否是多了一個 Article.php 文件?那就是 Artisan 幫咱們生成的 Model 文件:
<?php namespace App; use Illuminate\Database\Eloquent\Model; class Article extends Model { // }
如此簡潔有力的代碼,隱藏了背後極高的難度和巨大的複雜度,讓咱們閉上眼睛,靜靜地感覺 Laravel 的優雅吧 (~ ̄▽ ̄)~
六. 使用 Migration 和 Seeder
接下來咱們生成對應 Article 這個 Model 的 Migration 和 Seeder。
在 learnlaravel5 目錄下運行命令:
php artisan make:migration create_articles_table
成功以後打開 learnlaravel5/database/migrations
,你會發現有一個名爲 2*****_create_articles_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
執行成功後,articles 表已經出如今數據庫裏了:
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
爲命名空間絕對引用。若是你對命名空間還不熟悉,能夠讀一下 《PHP 命名空間 解惑》,很容易理解的。
接下來咱們把 ArticleSeeder 註冊到系統內。修改 learnlaravel5/database/seeds/DatabaseSeeder.php
中的 run 函數爲:
public function run() { $this->call(ArticleSeeder::class); }
因爲 database 目錄沒有像 app 目錄那樣被 composer 註冊爲 psr-4 自動加載,採用的是 psr-0 classmap 方式,因此咱們還須要運行如下命令把 ArticleSeeder.php
加入自動加載系統,避免找不到類的錯誤:
composer dump-autoload
而後執行 seed:
php artisan db:seed
你應該獲得以下結果:
這時候刷新一下數據庫中的 articles 表,會發現已經被插入了 10 行假數據:
參考:https://github.com/johnlui/Learn-Laravel-5/issues/16