首頁 >後端開發 >php教程 >CakePHP 專案配置

CakePHP 專案配置

WBOY
WBOY原創
2024-09-10 17:25:03495瀏覽

本章我們將了解CakePHP中的環境變數、常規設定、資料庫設定郵件配置

設定 CakePHP 預設自帶一個設定文件,我們可以依照自己的需求進行修改。為此,有一個專用資料夾 “config”。 CakePHP 具有不同的配置選項。

讓我們先從了解 CakePHP 中的環境變數開始。

環境變數

環境變數使您的應用程式在不同環境下的工作變得容易。例如,在開發伺服器、測試伺服器、登台伺服器和生產伺服器環境上。對於所有這些環境,您可以使用 env() 函數 讀取所需環境的配置並建立您的應用程式。

在您的 config 資料夾中,您將看到 config/.env.example。該文件包含將根據您的環境進行更改的所有變數。首先,您可以在 config 資料夾中建立一個文件,即 config/.env 並定義這些變數並使用它們。如果您需要任何其他變量,可以將其放入該文件中。

您可以使用 env() 函數讀取環境變量,如下所示 -

範例

$debug = env('APP_DEBUG', false);

第一個是您想要的環境變數的名稱,第二個值是預設值。如果沒有找到環境變數的值,則使用預設值。

常規設定

下表描述了各種變數的作用以及它們如何影響您的 CakePHP 應用程式。

表>

Databases Configuration

Database can be configured in config/app.php and config/app_local.php file. This file contains a default connection with provided parameters, which can be modified as per our choice.

The below snippet shows the default parameters and values, which should be modified as per the requirement.

Config/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',
      ],
   ],

Let us understand each parameter in detail in config/app_local.php.

先生No 變數名稱和描述
1
Sr.No Variable Name & Description
1

debug

Changes CakePHP debugging output.

false = Production mode. No error messages, errors, or warnings shown.

true = Errors and warnings shown.

2

App.namespace

The namespace to find app classes under.

3

App.baseUrl

Un-comment this definition, if you don’t plan to use Apache’s mod_rewrite with CakePHP. Don’t forget to remove your .htaccess files too.

4

App.base

The base directory the app resides in. If false, this will be auto detected.

5

App.encoding

Define what encoding your application uses. This encoding is used to generate the charset in the layout, and encode entities. It should match the encoding values specified for your database.

6

App.webroot

The webroot directory.

7

App.wwwRoot

The file path to webroot.

8

App.fullBaseUrl

The fully qualified domain name (including protocol) to your application’s root.

9

App.imageBaseUrl

Web path to the public images directory under webroot.

10

App.cssBaseUrl

Web path to the public css directory under webroot.

11

App.jsBaseUrl

Web path to the public js directory under webroot.

12

App.paths

Configure paths for non-class based resources. Supports the plugins, templates, locales, subkeys, which allow the definition of paths for plugins, view templates and locale files respectively.

13

Security.salt

A random string used in hashing. This value is also used as the HMAC salt when doing symmetric encryption.

14

Asset.timestamp

Appends a timestamp, which is last modified time of the particular file at the end of asset files URLs (CSS, JavaScript, Image) when using proper helpers. The valid values are −

  • (bool) false - Doesn’t do anything (default).

  • (bool) true - Appends the timestamp, when debug is true.

  • (string) ‘force’ - Always appends the timestamp.

調試 更改 CakePHP 偵錯輸出。 false = 生產模式。沒有顯示錯誤訊息、錯誤或警告。 true = 顯示錯誤和警告。
2 App.namespace 用於在其下尋找應用程式類別的命名空間。
3 App.baseUrl 如果您不打算將 Apache 的 mod_rewrite 與 CakePHP 一起使用,請取消註解此定義。不要忘記也刪除您的 .htaccess 檔案。
4 App.base 應用程式所在的基本目錄。如果為 false,則會自動偵測到。
5 App.encoding 定義您的應用程式使用的編碼。此編碼用於產生佈局中的字元集並對實體進行編碼。它應該與為您的資料庫指定的編碼值相符。
6 App.webroot webroot 目錄。
7 App.wwwRoot webroot 的檔案路徑。
8 App.fullBaseUrl 應用程式根目錄的完全限定網域名稱(包括協定)。
9 App.imageBaseUrl webroot 下公用映像目錄的 Web 路徑。
10 App.cssBaseUrl webroot 下公用 css 目錄的 Web 路徑。
11 App.jsBaseUrl webroot下公用js目錄的網路路徑。
12 App.paths 配置非基於類別的資源的路徑。支援外掛程式、範本、語言環境、子項目,它們允許分別定義外掛程式、視圖範本和語言環境文件的路徑。
13 Security.salt 用於散列的隨機字串。在進行對稱加密時,該值也用作 HMAC salt。
14 資產.時間戳 使用正確的幫助程式時,在資產文件 URL(CSS、JavaScript、圖像)末尾附加一個時間戳,即特定文件的最後修改時間。有效值為 -
  • (bool) false - 不執行任何操作(預設)。
  • (bool) true - 當 debug 為 true 時附加時間戳記。
  • (string) ‘force’ - 始終附加時間戳。
Host

The database server’s hostname (or IP address).

username

Database username

password

Database password.

database

Name of Database.

Port

The TCP port or Unix socket used to connect to the server.

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'],
   ],
]   

Let us understand each parameter in detail in config/app.php.

log
Sr.No Key & Description
1

className

The fully namespaced class name of the class that represents the connection to a database server. This class is responsible for loading the database driver, providing SQL transaction mechanisms and preparing SQL statements among other things.

2

driver

The class name of the driver used to implement all specificities for a database engine. This can either be a short classname using plugin syntax, a fully namespaced name, or a constructed driver instance. Examples of short classnames are Mysql, Sqlite, Postgres, and Sqlserver.

3

persistent

Whether or not to use a persistent connection to the database.

4

encoding

Indicates the character set to use, when sending SQL statements to the server like ‘utf8’ etc.

5

timezone

Server timezone to set.

6

init

A list of queries that should be sent to the database server as and when the connection is created.

7

log

Set to true to enable query logging. When enabled queries will be logged at a debug level with the queriesLog scope.

8

quoteIdentifiers

Set to true, if you are using reserved words or special characters in your table or column names. Enabling this setting will result in queries built using the Query Builder having identifiers quoted when creating SQL. It decreases performance.

9

flags

An associative array of PDO constants that should be passed to the underlying PDO instance.

10

cacheMetadata

Either boolean true, or a string containing the cache configuration to store meta data in. Having metadata caching disable is not advised and can result in very poor performance.

Email Configuration

Email can be configured in file config/app.php. It is not required to define email configuration in config/app.php. Email can be used without it. Just use the respective methods to set all configurations separately or load an array of configs. Configuration for Email defaults is created using config() and configTransport().

Email Configuration Transport

By defining transports separately from delivery profiles, you can easily re-use transport configuration across multiple profiles. You can specify multiple configurations for production, development and testing. Each transport needs a className. Valid options are as follows −

  • Mail − Send using PHP mail function

  • Smtp − Send using SMTP

  • Debug − Do not send the email, just return the result

You can add custom transports (or override existing transports) by adding the appropriate file to src/Mailer/Transport. Transports should be named YourTransport.php, where 'Your' is the name of the transport.

Following is the example of Email configuration transport.

'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 Delivery Profiles

Delivery profiles allow you to predefine various properties about email messages from your application, and give the settings a name. This saves duplication across your application and makes maintenance and development easier. Each profile accepts a number of keys.

Following is an example of Email delivery profiles.

'Email' => [
   'default' => [
   
      'transport' => 'default',
      'from' => 'you@localhost',
   ],
],

以上是CakePHP 專案配置的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:CakePHP 資料夾結構下一篇:CakePHP 資料夾結構

相關文章

看更多