cakephp 項目配置
在本章中,我們將了解 cakephp 中的 環境變量、通用配置、數據庫配置和 電子郵件配置。
配置 cakephp 默認自帶一個配置文件,我們可以根據需要進行修改。有一個專用文件夾 "config" 用于此目的。cakephp 帶有不同的配置選項。
讓我們從了解 cakephp 中的環境變量開始。
環境變量
環境變量使您的應用程序在不同環境中的工作變得容易。例如,在開發服務器、測試服務器、登臺服務器和生產服務器環境上。對于所有這些環境,您可以使用 env() 函數來讀取您需要的環境的配置并構建您的應用程序。
在你我們的 config 文件夾,你會遇到 config/.env.example。此文件包含將根據您的環境更改的所有變量。首先,您可以在 config 文件夾中創建一個文件,即 config/.env 并定義這些變量并使用它們。如果您需要任何其他變量,它可以放在該文件中。
您可以使用 env() 函數讀取您的環境變量,如下所示:
示例
$debug = env('app_debug', false);
第一個是您想要的環境變量的名稱,第二個值是默認值。如果沒有找到環境變量的值,則使用默認值。
一般配置
下表描述了各種變量的作用以及它們如何影響您的 cakephp 應用程序。
變量名稱和描述 |
debug 更改 cakephp 調試輸出。 false = 生產模式。未顯示錯誤消息、錯誤或警告。 true = 顯示錯誤和警告。 |
app.namespace 在其下查找應用類的命名空間。 |
app.baseurl 取消注釋此定義,如果您不打算將 apache 的 mod_rewrite 與 cakephp 一起使用。不要忘記刪除您的 .htaccess 文件。 |
app.base 應用所在的基本目錄。如果為false,將自動檢測。 |
app.encoding 定義您的應用程序使用的編碼。此編碼用于在布局中生成字符集,并對實體進行編碼。它應該與為您的數據庫指定的編碼值相匹配。 |
app.webroot webroot 目錄。 |
app.wwwroot webroot 的文件路徑。 |
app.fullbaseurl 應用程序根目錄的完全限定域名(包括協議)。 |
app.imagebaseurl webroot 下公共圖像目錄的 web 路徑。 |
app.cssbaseurl webroot 下公共 css 目錄的 web 路徑。 |
app.jsbaseurl webroot下公共js目錄的web路徑。 |
app.paths 為非基于類的資源配置路徑。支持 插件、模板、區域設置、子鍵,允許分別定義插件、視圖模板和區域設置文件的路徑。 |
security.salt 用于散列的隨機字符串。在進行對稱加密時,此值也用作 hmac 鹽。 |
asset.timestamp 在資產文件 url(css、javascript、圖像)的末尾附加一個時間戳,這是特定文件的最后修改時間使用適當的助手時。有效值為-
|
數據庫配置
數據庫可以在 config/app.php 和config/app_local.php 文件中配置。該文件包含一個帶有提供參數的默認連接,可以根據我們的選擇進行修改。
以下代碼段顯示了默認參數和值,應根據要求對其進行修改。
配置/app_local.php
*/ 'datasources' => [ 'default' => [ 'host' => 'localhost', 'username' => 'my_app', 'password' => 'secret', 'database' => 'my_app', 'url' => env('database_url', null), ], /* * the test connection is used during the test suite. */ 'test' => [ 'host' => 'localhost', //'port' => 'non_standard_port_number', 'username' => 'my_app', 'password' => 'secret', 'database' => 'test_myapp', //'schema' => 'myapp', ], ],
讓我們詳細了解 config/app_local.php中的每個參數。
host |
數據庫服務器的主機名(或 ip 地址)。 |
username |
數據庫用戶名 |
password |
數據庫密碼。 |
database |
數據庫名稱。 |
port |
用于連接到服務器的 tcp 端口或 unix 套接字。 |
config/app.php
'datasources' => [ 'default' => [ 'classname' => connection::class, 'driver' => mysql::class, 'persistent' => false, 'timezone' => 'utc', //'encoding' => 'utf8mb4', 'flags' => [], 'cachemetadata' => true, 'log' => false, 'quoteidentifiers' => false, //'init' => ['set global innodb_stats_on_metadata = 0'], ], ]
讓我們詳細了解 config/app.php中的每個參數。
鍵和描述 |
classname 代表與數據庫服務器的連接的類的完全命名空間類名。該類負責加載數據庫驅動、提供sql事務機制和準備sql語句等。 |
driver 用于實現數據庫引擎所有特性的驅動程序的類名。這可以是使用插件語法的短類名、完全命名空間的名稱或構造的驅動程序實例。短類名的示例包括 mysql、sqlite、postgres 和 sqlserver。 |
persistent 是否使用與數據庫的持久連接。 |
encoding 表示在向服務器發送 sql 語句(如‘utf8’等)時使用的字符集 |
timezone 要設置的服務器時區。 |
init 在創建連接時應發送到數據庫服務器的查詢列表。 |
log 設置為 true 以啟用查詢日志記錄。啟用查詢后,將在具有查詢日志范圍的調試級別記錄。 |
quoteidentifiers 如果您在表名或列名中使用保留字或特殊字符,則設置為 true。啟用此設置將導致使用查詢生成器構建的查詢在創建 sql 時引用標識符。它會降低性能。 |
flags 應該傳遞給底層 pdo 實例的 pdo 常量的關聯數組。 |
cachemetadata 布爾值 true,或包含存儲元數據的緩存配置的字符串。不建議禁用元數據緩存,這可能會導致非常表現不佳。 |
電子郵件配置
電子郵件可以在文件 config/app.php 中配置。不需要在 config/app.php 中定義電子郵件配置。沒有它也可以使用電子郵件。只需使用相應的方法分別設置所有配置或加載一組配置。電子郵件默認配置是使用 config() 和 configtransport() 創建的。
電子郵件配置傳輸
通過將傳輸與交付配置文件分開定義,您可以輕松地跨多個配置文件重復使用傳輸配置。您可以為生產、開發和測試指定多種配置。每個傳輸都需要一個類名。有效選項如下:
- mail-使用 php 郵件功能發送
- smtp-使用 smtp 發送
- debug-不發送電子郵件,只返回結果
您可以通過將適當的文件添加到 src/mailer/transport 來添加自定義傳輸(或覆蓋現有傳輸)。傳輸應命名為 yourtransport.php,其中" your" 是傳輸的名稱。
以下是電子郵件配置傳輸的示例。
'emailtransport' => [ 'default' => [ 'classname' => 'mail', // the following keys are used in smtp transports 'host' => 'localhost', 'port' => 25, 'timeout' => 30, 'username' => 'user', 'password' => 'secret', 'client' => null, 'tls' => null, 'url' => env('email_transport_default_url', null), ], ],
電子郵件發送配置文件
傳遞配置文件允許您預定義有關來自應用程序的電子郵件的各種屬性,并為設置命名。這可以節省應用程序中的重復,并使維護和開發更容易。每個配置文件都接受多個鍵。
以下是電子郵件發送配置文件的示例。
'email' => [ 'default' => [ 'transport' => 'default', 'from' => 'you@localhost', ], ],
- CodeIgniter 教程
- CodeIgniter 應用程序架構
- CodeIgniter MVC 框架
- CodeIgniter 基本概念
- CodeIgniter 使用數據庫
- CodeIgniter 錯誤處理
- CodeIgniter 發送電子郵件
- CodeIgniter 表單驗證
- CodeIgniter 會話管理
- CodeIgniter Flashdata
- CodeIgniter Cookie管理
- CodeIgniter 常用函數
- CodeIgniter 添加JS和CSS
- Laravel session
- Laravel Facades
- Laravel CSRF保護
- Laravel 認證
- Laravel Artisan控制臺
- Laravel 加密
- Laravel 哈希