Artisan 是 Laravel 內建的命令行工具,它提供了一些有用的命令協助您開發,它是由強大的 Symfony Console 組件所驅動。
打開終端,進入有寫權限的文件夾,執行以下命令生成一個新程序:
~~~
$ laravel new blog
~~~
或者
~~~
$ composer create-project laravel/laravel blog --prefer-dist
~~~
這個命令會在文件夾 blog 中新建一個 Laravel 程序。
> 執行 laravel new -h 可以查看新程序生成器的所有命令行選項。
生成 blog 程序后,進入該文件夾:
~~~
$ cd blog
~~~
blog 文件夾中有很多自動生成的文件和文件夾,組成一個 Laravel 程序。本文大部分時間都花在 app 文件夾上。下面簡單介紹默認生成的文件和文件夾的作用:
| 文件/文件夾 | 作用 |
| --- | --- |
| app/ | 包含了站點的 controllers(控制器),models(模型),views(視圖)和 assets(資源)。這些是網站運行的主要代碼,你會將你大部分的時間花在這些上面。本文主要關注的是這個文件夾。 |
| bootstrap | 用來存放系統啟動時需要的文件,這些文件會被如 index.php 這樣的文件調用。 |
| public | 這個文件夾是唯一外界可以看到的,是必須指向你 web 服務器的目錄。它含有 laravel 框架核心的引導文件 index.php,這個目錄也可用來存放任何可以公開的靜態資源,如 css,Javascript,images 等。 |
| vendor | 用來存放所有的第三方代碼,在一個典型的 Laravel 應用程序,這包括 Laravel 源代碼及其相關,并含有額外的預包裝功能的插件。 |
| app/config/ | 配置應用程序的運行時規則、 數據庫、 session等等。包含大量的用來更改框架的各個方面的配置文件。大部分的配置文件中返回的選項關聯PHP數組。 |
| app/config/app.php | 各種應用程序級設置,即時區、 區域設置(語言環境)、 調試模式和獨特的加密密鑰。 |
| app/config/auth.php | 控制在應用程序中如何進行身份驗證,即身份驗證驅動程序。 |
| app/config/cache.php | 如果應用程序利用緩存來加快響應時間,要在此配置該功能。 |
| app/config/compile.php | 在此處可以指定一些額外類,去包含由‘artisan optimize’命令聲稱的編譯文件。這些應該是被包括在基本上每個請求到應用程序中的類。 |
| app/config/database.php | 包含數據庫的相關配置信息,即默認數據庫引擎和連接信息。 |
| app/config/mail.php | 為電子郵件發件引擎的配置文件,即 SMTP 服務器,From:標頭 |
| app/config/session.php | 控制Laravel怎樣管理用戶sessions,即session driver, session lifetime。 |
| app/config/view.php | 模板系統的雜項配置。 |
| app/controllers | 包含用于提供基本的邏輯、 數據模型交互以及加載應用程序的視圖文件的控制器類。 |
| app/database/migrations/ | 包含一些 PHP 類,允許 Laravel更新當前數據庫的架構并同時保持所有版本的數據庫的同步。遷移文件是使用Artisan工具生成的。 |
| app/database/seeds/ | 包含允許Artisan工具用關系數據來填充數據庫表的 PHP 文件。 |
| app/lang/ | PHP 文件,其中包含使應用程序易于本地化的字符串的數組。默認情況下目錄包含英語語言的分頁和表單驗證的語言行。 |
| app/models/ | 模型是代表應用程序的信息(數據)和操作數據的規則的一些類。在大多數情況下,數據庫中的每個表將對應應用中的一個模型。應用程序業務邏輯的大部分將集中在模型中。 |
| app/start/ | 包含與Artisan工具以及全球和本地上下文相關的自定義設置。 |
| app/storage/ | 該目錄存儲Laravel各種服務的臨時文件,如session, cache, compiled view templates。這個目錄在web服務器上必須是可以寫入的。該目錄由Laravel維護,我們可以不關心。 |
| app/tests/ | 該文件夾給你提供了一個方便的位置,用來做單元測試。如果你使用PHPUnit,你可以使用Artisan工具一次執行所有的測試。 |
| app/views/ | 該文件夾包含了控制器或者路由使用的HTML模版。請注意,這個文件夾下你只能放置模版文件。其他的靜態資源文件如css, javascript和images文件應該放在/public文件夾下。 |
| app/routes.php | 這是您的應用程序的路由文件,其中包含路由規則,告訴 Laravel 如何將傳入的請求連接到路由處理的閉包函數、 控制器和操作。該文件還包含幾個事件聲明,包括錯誤頁的,可以用于定義視圖的composers。 |
| app/filters.php | 此文件包含各種應用程序和路由篩選方法,用來改變您的應用程序的結果。Laravel 具有訪問控制和 XSS 保護的一些預定義篩選器。 |