如何处理CakePHP中的配置文件

R4D*_*D3K 9 configuration app-config cakephp cakephp-2.0

我知道在文件夹配置中有一个名为core.php的文件,我可以将应用程序选项配置为调试模式,会话,缓存等.

但我想为我的应用程序配置文件.我想要例如配置主页中可以显示多少帖子,thubnails大小等.

我认为,在config文件夹最好的地方,但何时何地解析应用茨艾伦文件(引导,AppController的另一种机制是什么?)什么是最好的扩展的.ini或PHP数组(性能原因也是如此).这样做的最佳做法是什么?

Aru*_*ain 8

DEFINE OWN CONSTANT FILE

创建一个文件让我们假设'site_constants.php'在app/Config文件夹中包含一些常量变量.在其中定义以下常量:

<?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);
}
Run Code Online (Sandbox Code Playgroud)

包括在内 app/Config/bootstrap.php

require_once('site_constants.php');
Run Code Online (Sandbox Code Playgroud)

现在您可以在任何地方使用它进入您的网站.这也是一种动态.

DEFINE OWN CONFIGURATION FILE

创建一个文件让我们假设'my_config.php'在app/Config文件夹中包含一些常量变量.按以下方式定义常量:

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

然后在你app/Controller/AppController.php写下面的行beforeFilter() method:

function beforeFilter()
{ 
     Configure::load('my_config');        
}
Run Code Online (Sandbox Code Playgroud)

现在,在您的控制器方法中,您要访问要在分页列表中列出的页码.您可以通过以下代码使用它:

$page_config = Configure :: read('PageConfig');   
$user_per_page = $page_config['UserPerPage']; 
//or
$post_per_page = $page_config['PostPerPage']; 
Run Code Online (Sandbox Code Playgroud)

这可能看起来很长,以处理此任务,但一旦完成,它将在很多方面帮助您.

以下是优点:

  1. 您可以轻松定义更多常量(如任何文件路径等).
  2. 您可以将所有ajax代码放入外部JS文件中.
  3. 您可以直接将其部署到任何服务器上,而无需更改常量以及完美地工作到您的localhost.
  4. 遵循标准惯例等