9

フォルダconfigには、アプリケーションオプションをデバッグモード、セッション、キャッシュなどとして構成できるcore.phpというファイルがあることを知っています。

しかし、アプリケーションのファイルを構成したいのですが。たとえば、メインページに表示できる投稿の数、thubnailsのサイズなどを構成したいと思います。

configフォルダー内の最適な場所だと思いますが、アプリケーション内のthosファイルを解析する場所とタイミング(ブートストラップ、AppController別のメカニズム?)、および最適な拡張子.iniまたはPHP配列(パフォーマンス上の理由から)は何ですか。これを行うためのベストプラクティスは何ですか?

4

3 に答える 3

8

DEFINE OWN CONSTANT FILE

ファイルを作成して、app/Configフォルダーにいくつかの定数変数を含む「site_constants.php」を想定します。次の定数を定義します。

<?php    
define('HTTP_HOST', "http://" . $_SERVER['HTTP_HOST'].'/');
if(HTTP_HOST == 'localhost' || HTTP_HOST == '127.0.0.1')
{
     define('SITE_URL', HTTP_HOST.'app_folder_name/');
}
else
{
     define('SITE_URL', HTTP_HOST);
}

に含めるapp/Config/bootstrap.php

require_once('site_constants.php');

今、あなたはあなたのウェブサイトのどこでもそれを使うことができます。そして、これもダイナミックです。

DEFINE OWN CONFIGURATION FILE

ファイルを作成して、app/Configフォルダーにいくつかの定数変数を含む「my_config.php」を想定します。次の方法で定数を定義します。

<?php
$config['PageConfig'] = array('PostPerPage' => 5, 'UserPerPage' => 15);

次にapp/Controller/AppController.php、次の行を次のように記述しますbeforeFilter() method

function beforeFilter()
{ 
     Configure::load('my_config');        
}

次に、コントローラーのメソッドで、ページネーションリストにリストされるページ番号にアクセスします。次のコードで使用できます。

$page_config = Configure :: read('PageConfig');   
$user_per_page = $page_config['UserPerPage']; 
//or
$post_per_page = $page_config['PostPerPage']; 

これは、このタスクを処理するのに長いプロセスに見えるかもしれませんが、一度実行すると、多くの意味で役立ちます。

利点は次のとおりです。

  1. さらにいくつかの定数を簡単に定義できます(ファイルパスなど)。
  2. すべてのajaxコードを外部JSファイルに入れることができます。
  3. 定数を変更せずに任意のサーバーに直接デプロイできるだけでなく、ローカルホストで完全に機能します。
  4. 以下の標準的な規則など。
于 2012-09-05T05:22:20.397 に答える
1

CakePHPは、この目的のためにConfigureクラスを提供します。ドキュメントを参照してください。

独自の構成ファイルで使用Configure::write($key,$value)してから、を介してアプリケーションの他の場所で値を読み取ることができますConfigure::read($key)。また、プロセスを自動化し、外部構成ファイルを読み込むリーダーを使用することもできます。CakePHPはデフォルトでPHPreaderとINIreaderを提供しており、リーダーを作成して拡張することができます。

于 2012-09-04T21:49:50.960 に答える
0

次のような構成変数を使用して新しいファイルを作成します。

Configure::write('Twitter', array(
    'consumer_key' => "OTh1sIsY0urC0n5um3rK3Y4T878676",
    'consumer_secret' => "OTh1sIsY0ur53cReT76OTIMGjEhiWx94f3LV",
    'oauth_access_token' => "12345678-OTh1sIsY0urAcc355K3YT878676Y723n4hqxSyI4",
    'oauth_access_token_secret' => "OTh1sIsY0urACC355T0KEnsdjh4T878676FPtRRtjDA29ejYSn"
));

このファイルをapp/Config/twitter.phpに保存します

そのファイルをapp/Config/bootsrap.phpに含めます。

require_once('twitter.php');

コントローラ(この例では「app / Controller / TwitterController.php」)では、次のように使用できます。

$settings = Configure :: read('Twitter'); 
于 2015-03-05T12:10:39.753 に答える