首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理CakePHP中的配置文件

如何处理CakePHP中的配置文件
EN

Stack Overflow用户
提问于 2012-09-05 03:26:16
回答 3查看 9.5K关注 0票数 9

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

但是我想为我的应用程序做配置文件。我想配置,例如,有多少帖子可以显示在主页上,图钉大小等。

我认为最好的地方在配置文件夹中,但何时何地在应用程序中解析这些文件(bootstrap,AppController另一种机制?)什么是最好的扩展.ini或PHP数组(出于性能方面的原因)。执行此操作的最佳实践是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-05 13:22:20

DEFINE OWN CONSTANT FILE

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

代码语言:javascript
复制
<?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

代码语言:javascript
复制
require_once('site_constants.php');

现在你可以在你网站的任何地方使用它。这也是一种动态。

DEFINE OWN CONFIGURATION FILE

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

代码语言:javascript
复制
<?php
$config['PageConfig'] = array('PostPerPage' => 5, 'UserPerPage' => 15);

然后在您的app/Controller/AppController.php中,用beforeFilter() method编写以下代码行

代码语言:javascript
复制
function beforeFilter()
{ 
     Configure::load('my_config');        
}

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

代码语言:javascript
复制
$page_config = Configure :: read('PageConfig');   
$user_per_page = $page_config['UserPerPage']; 
//or
$post_per_page = $page_config['PostPerPage']; 

处理这项任务看起来可能需要很长时间,但一旦完成,它将在许多方面为您提供帮助。

以下是它的优点:

  1. 你可以很容易地定义更多的常量(如任何文件路径等)。
  2. 你可以把你所有的ajax代码放到外部的JS文件中。
  3. 你可以直接把它部署到任何服务器上,而不需要更改常量,也可以完美地工作在你的localhost.
  4. following标准约定上,等等。
票数 8
EN

Stack Overflow用户

发布于 2012-09-05 05:49:51

CakePHP为此提供了Configure类。参见the documentation

您可以在自己的配置文件中使用Configure::write($key,$value),然后通过Configure::read($key)在应用程序中的其他位置读取值。它还允许您使用自动执行该过程的读取器,并读取外部配置文件。默认情况下,CakePHP提供了一个PHPreader和一个INIreader,您可以创建读取器来扩展它。

票数 1
EN

Stack Overflow用户

发布于 2015-03-05 20:10:40

使用配置变量创建新文件,如下所示:

代码语言:javascript
复制
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中文件:

代码语言:javascript
复制
require_once('twitter.php');

在控制器(本例为'app/ Controller /TwitterController.php')中,您可以这样使用:

代码语言:javascript
复制
$settings = Configure :: read('Twitter'); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12270064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档