Laravel学习笔记(二)
生活随笔
收集整理的這篇文章主要介紹了
Laravel学习笔记(二)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? 解決了類自動加載的問題,剩下的問題就是看文檔了,laravel的官方文檔雖然簡單,但是卻包含了很多基礎知識,學習Laravel最好先看看官方文檔,我感覺幫助很大,因為laravel框架的源碼看起來并不容易,一層一層的套,看文檔會快一些,如果想更詳細的了解,可以考慮研究源碼。
考慮到laravel框架的復雜性,最好不要使用編輯器,要用IDE來開發,因為IDE可以調試、跳轉到類聲明文件等等,還包括一些自動完成的功能。不過如果堅持要使用編輯器,推薦用sublime,常見的IDE有Netbeans、PHPEclipse、Aptana、ZendStudio、PHPStorm,其中ZendStudio、PHPStorm是收費軟件,如果有錢是更好的選擇,如果注重版權,可以考慮Netbeans、PHPEclipse、Aptana,PHPEclipse和Aptana比較類似,我比較喜歡Netbeans和Aptana,它們都能提供語法加亮、代碼提示、調試、版本管理方面的支持,使用上都差不多,我選擇了Netbeans,因為Netbeans支持采用PHP內建的web服務器,對于開始一個新項目很方便,適合初學者,也可以選擇Aptana,只是麻煩一些,需要修改Apache配置文件,增加一個虛擬主機。 在使用IDE之前最好增加IDE支持,因為常見的IDE無法理解Laravel的Facades的工作方式(不僅IDE不懂,我也沒看懂),barryvdh開發了一個IDE-Helper工具,配置過程也比較簡單,官網很詳細,這里做個備注: 1)修改composer.json的內容如下 在require下增加 "barryvdh/laravel-ide-helper": "1.*" 然后在laravel根目錄(composer.json所在目錄)運行composer update, 或者直接運行:composer require barryvdh/laravel-ide-helper: 1.* 運行結束之后會在vendor目錄下增加一個barrayvdh的目錄。 2)在app/config/app.php中providers數組增加一行: 'Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider', 3)現在其實已經可以代碼提示了,但是如果增加了新的組件,需要手工運行 php artisan clear-compiled php artisan ide-helper:generate 也可以每次更新都自動生成,在composer.json中script->post-update-cmd下修改,增加如下 "post-update-cmd": [ "php artisan clear-compiled", "php artisan ide-helper:generate", "php artisan optimize" ], ? ?? 這樣就可以使用自動提示了,而且可以看一下laravel根目錄下自動生成的_ide-helper.php文件,可以看到很多類的相互關系,挺不錯的,比如在routes.php中Route,根據_ide-helper.php,可以知道Route對應的是\Illuminate\Routing\Router,根據vendor/composer/autoload_classmap.php文件的對應關系,可以知道,對應的是vendor/laravel/framework/src/Illuminate/Routing/Router.php。Netbeans的代碼跳轉往往也是跳到_ide-helper.php文件。 如果對PHP很熟悉,學習框架就非常簡單了,如果不是很熟悉,推薦手頭放一本PHP參考書備查,我覺的LAMP兄弟連的《細說PHP》不錯,如果經常使用,建議買一本。根據官方文檔,一個請求的生命周期如下: 1)請求進入public/index.php文件,如果使用Apache服務器,會讀取根目錄的.htaccess文件,調用重寫功能,不需要輸入index.php,就可以調用了,不過在虛擬目錄的情況下,就得寫index.php才行。 2)調用bootstrap/start.php文件,創建應用(Illuminate\Foundation\Application)并檢查環境 3)調用framework/start.php,路徑為\vendor\laravel\framework\src\Illuminate\Foundation\start.php? 4)裝載app/start目錄下的global.php、artisan.php、local.php 5)裝載app/routes.php 6)將Request對象發給Application,處理之后返回Response對象 7)將Response對象返回到client 這個過程比較復雜,注意上面的“裝載”、"調用"都是"require"的意思。但大部分內容我們不需要管,首先需要了解的是app/routes.php,這個是laravel的核心功能,會將你的請求轉到對應的資源上,如顯示頁面的php文件、控制器(php)文件等。 對于開發人員來數,需要注意的是routes.php,這個文件代表了每一個瀏覽器發出的請求最終調用的php程序,這一點其實和Java的MVC類似,PHP可以做到這種程度讓我有點驚訝。不過是好事情,意味著學習起來會比較容易。 routes.php中的路由調度常見的有一下模式 Route::get('/',function(){ return View::make('hello'); ? ? ? ? }); 這里需要注意一下,Route實際上對應的是vendor/laravel/framework/src/Illuminate/Routing/Router.php,其中的/代表的是虛擬路徑,get代表請求方式,還可以是post方式,或者any(任意方式),View::make('hello')代表路由目標為app/view/hello.php,指向其他的文件,依此類推就可以了。 通常我們在轉向新的頁面的時候,需要攜帶一些對象或者數組過去,也很容易,只要 return View::make("hello")-)with('user',$user)->with('student',$student) 在新的頁面調用只要直接調用$user,$student就可以了。 上面的路由是最簡單的方式,如果在到達新的頁面之前需要更多的邏輯計算,就需要邏輯放到Controller類中,這樣會讓routes.php較為簡潔,當然Controller類中的邏輯如果過于復雜,也可以將邏輯分出來,比如業務邏輯較為復雜,可以將業務邏輯保存在其他的php文件,比如建立一個business目錄,用來保存商業邏輯。要記住將business目錄加入到composer.json的autoload下,才能自動被加載,被其他php文件調用。 所有的Controller類都要是BaseController的子類,BaseController位于/app/controller目錄下,路由調用方式如下 Route::get('user/profile',?array('as'?=>?'profile',?'uses'?=>?'UserController@showProfile')); 這里需要注意的是路由user/profile,指向目標為Controller類UserController的方法showProfile,profile是路由的名稱,在其他地方可以使用這個名字,跳轉到UserController的showProfile方法。 一般來說,知道這些就可以進行開發了,如果想知道更多,可以參考官方文檔,包括路由加參數,如user/profile/1這種方式,過濾器等。
轉載于:https://www.cnblogs.com/stone-fly/p/3976695.html
總結
以上是生活随笔為你收集整理的Laravel学习笔记(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WPF/Silverlight Layo
- 下一篇: 如何使用CocoStudio场景编辑器制