laravel5.5入門-安裝和認證

1、安裝

在終端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、鏈接數據庫

a. 修改配置

不出意外的話,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,成功後顯示

 

c. migration 是啥?

打開 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 概率。什麼?你說性能?軟件工程研究的對象是人,性能的優先級比代碼格式規範都低好嘛。我時刻謹記:代碼是寫給人看的,只是剛好能運行。

b. 怎麼用?

咱們使用 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。

a. 使用 artisan 生成 Migration

在 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 表已經出如今數據庫裏了:

 

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 爲命名空間絕對引用。若是你對命名空間還不熟悉,能夠讀一下 《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

相關文章
相關標籤/搜索