CakePHP-プロジェクト構成

この章では、 Environment Variables, General Configuration, Database Configuration そして Email Configuration CakePHPで。

ConfigurationCakePHPにはデフォルトで1つの構成ファイルが付属しており、必要に応じて変更できます。専用フォルダが1つあります“config”この目的のために。CakePHPには、さまざまな構成オプションが付属しています。

CakePHPの環境変数を理解することから始めましょう。

環境変数

環境変数を使用すると、さまざまな環境でのアプリケーションの操作が簡単になります。たとえば、開発サーバー、テストサーバー、ステージングサーバー、本番サーバー環境。これらすべての環境で、env() function 必要な環境の構成を読み取り、アプリケーションを構築します。

configフォルダーで、config /.env.exampleに出くわします。このファイルには、環境に基づいて変更されるすべての変数が含まれています。まず、configフォルダー(config / .env)にファイルを作成し、それらの変数を定義して使用することができます。追加の変数が必要な場合は、そのファイルに入れることができます。

以下に示すように、env()関数を使用して環境変数を読み取ることができます。

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

最初の値は必要な環境変数の名前であり、2番目の値はデフォルト値です。環境変数の値が見つからない場合は、デフォルト値が使用されます。

一般的な構成

次の表は、さまざまな変数の役割と、それらがCakePHPアプリケーションに与える影響を示しています。

シニア番号 変数名と説明
1

debug

CakePHPのデバッグ出力を変更します。

false=プロダクションモード。エラーメッセージ、エラー、または警告は表示されません。

true =エラーと警告が表示されます。

2

App.namespace

アプリクラスを検索するための名前空間。

3

App.baseUrl

CakePHPでApacheのmod_rewriteを使用する予定がない場合は、この定義のコメントを解除してください。.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ディレクトリへのWebパス。

12

App.paths

非クラスベースのリソースのパスを構成します。をサポートしますplugins, templates, locales, subkeys, プラグイン、ビューテンプレート、ロケールファイルのパスをそれぞれ定義できます。

13

Security.salt

ハッシュで使用されるランダムな文字列。この値は、対称暗号化を行うときにHMACソルトとしても使用されます。

14

Asset.timestamp

適切なヘルパーを使用する場合、アセットファイルのURL(CSS、JavaScript、画像)の最後に特定のファイルの最終変更時刻であるタイムスタンプを追加します。有効な値は次のとおりです。

  • (bool)false-何もしません(デフォルト)。

  • (bool)true-デバッグがtrueの場合、タイムスタンプを追加します。

  • (文字列) 'force'-常にタイムスタンプを追加します。

データベース構成

データベースはで構成できます config/app.php and config/app_local.phpファイル。このファイルには、提供されたパラメーターを使用したデフォルトの接続が含まれています。これらのパラメーターは、選択に応じて変更できます。

以下のスニペットは、デフォルトのパラメーターと値を示しています。これらは、要件に従って変更する必要があります。

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

各パラメータを詳しく理解しましょう config/app_local.php

ホスト

データベースサーバーのホスト名(またはIPアドレス)。

ユーザー名

データベースのユーザー名

パスワード

データベースパスワード。

データベース

データベースの名前。

サーバーへの接続に使用される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

ログ
シニア番号 キーと説明
1

className

データベースサーバーへの接続を表すクラスの完全に名前空間化されたクラス名。このクラスは、データベースドライバーのロード、SQLトランザクションメカニズムの提供、SQLステートメントの準備などを担当します。

2

driver

データベースエンジンのすべての特殊性を実装するために使用されるドライバーのクラス名。これは、プラグイン構文を使用した短いクラス名、完全に名前空間化された名前、または構築されたドライバーインスタンスのいずれかです。短いクラス名の例は、Mysql、Sqlite、Postgres、およびSqlserverです。

3

persistent

データベースへの永続的な接続を使用するかどうか。

4

encoding

'utf8'などのSQLステートメントをサーバーに送信するときに使用する文字セットを示します。

5

timezone

設定するサーバーのタイムゾーン。

6

init

接続が作成されたときにデータベースサーバーに送信する必要があるクエリのリスト。

7

log

trueに設定すると、クエリログが有効になります。有効にすると、querysLogスコープを使用してデバッグレベルでクエリがログに記録されます。

8

quoteIdentifiers

テーブル名または列名で予約語または特殊文字を使用している場合は、trueに設定します。この設定を有効にすると、SQLの作成時に引用符で囲まれた識別子を持つクエリビルダーを使用してクエリが作成されます。パフォーマンスが低下します。

9

flags

基になるPDOインスタンスに渡す必要があるPDO定数の連想配列。

10

cacheMetadata

boolean true、またはメタデータを格納するためのキャッシュ構成を含む文字列。メタデータキャッシュを無効にすることはお勧めできません。パフォーマンスが非常に低下する可能性があります。

Eメール構成

メールはファイルで設定できます config/app.php。config /app.phpで電子メール構成を定義する必要はありません。メールはそれなしで使用できます。それぞれの方法を使用して、すべての構成を個別に設定するか、構成の配列をロードするだけです。電子メールのデフォルトの構成は、config() そして configTransport()

Eメール構成トランスポート

配信プロファイルとは別にトランスポートを定義することにより、複数のプロファイル間でトランスポート構成を簡単に再利用できます。実稼働、開発、およびテスト用に複数の構成を指定できます。各トランスポートにはclassNameが必要です。有効なオプションは次のとおりです-

  • Mail −PHPメール機能を使用して送信する

  • Smtp −SMTPを使用して送信する

  • Debug −メールを送信せず、結果を返すだけです

適切なファイルをに追加することにより、カスタムトランスポートを追加(または既存のトランスポートをオーバーライド)できます。 src/Mailer/Transport。トランスポートには名前を付ける必要がありますYourTransport.php、 どこ 'Your' トランスポートの名前です。

以下は、Eメール構成トランスポートの例です。

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