首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储数据库和本地配置设置的最佳位置

问存储数据库和本地配置设置的最佳位置
EN

Stack Overflow用户
提问于 2011-04-11 20:00:42
回答 4查看 125关注 0票数 1

我是PHP的新手,正在尝试开始一个有良好基础的PHP项目。我看过很多网站的源码,并意识到每个网站的源码都是不同的。

最初,我想保存我的数据库设置和本地设置,如数据格式,货币格式等在一个配置类,这是可访问的任何地方的应用程序,而不是使用包含。

我需要一个好的控制器类,我不想使用任何框架!

非常感谢您提前给予的帮助。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-04-11 20:14:02

如果我错了,有人可以纠正我,但我不相信不使用include就可以设置PHP变量,即使可以,这也不是一个好主意。如果这是可能的,任何后来维护你的代码的人都会非常困惑。

你能做的就是创建一个__autoload函数(参见:http://php.net/manual/en/language.oop5.autoload.php),在你需要的时候用你的变量加载一个类。然而,这比仅包含文件的成本更高。

如何创建自动加载器

index.php:

代码语言:javascript
复制
<?php

include("autoloader.inc.php");

$vars = new settings(); //this procs the __audoload() function

autoloader.inc.php:

代码语言:javascript
复制
<?php

function __autoload($class) {
    include $class . '.php';
}

settings.php:

代码语言:javascript
复制
<?php

//settings functions
date_default_timezone_set('America/Los_Angeles');
//... more stuff


//variable container class
class settings {
    public static $dbuser = "billybob";
    //... more stuff
}

自动加载器的优点是,如果您不总是需要这些信息,则可以避免在不需要时加载设置文件。或者根据需要加载其他类。

票数 0
EN

Stack Overflow用户

发布于 2011-04-11 20:18:43

如果你想在你的应用程序中每次都包含一个文件&假设每个请求都由index.php处理,你可以这样做:

代码语言:javascript
复制
$lib_paths = array();
$lib_paths[] = "c:/web/htdocs/appname/lib";  // you can more paths in this array
$inc_path = implode(PATH_SEPARATOR, $lib_paths);
set_include_path($inc_path);

假设lib有您的配置类/文件。

如果您正在寻找控制器类&正如您所说的,您是新手,我建议您阅读

PHP:模式、框架、测试和更多作者: McArthur

它将让您了解如何创建MVC的控制器和其他组件

希望这能有所帮助

票数 0
EN

Stack Overflow用户

发布于 2011-04-11 20:23:37

将所有配置变量存储到ini或yaml文件中(webserver的不可访问路径)。我更喜欢Yaml文件。因为它比ini更舒服。

要读取ini文件,可以使用php中的parse_ini_file()函数。对于yaml,使用symfony YAML组件。

创建一个基本的config类来读取它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5620951

复制
相关文章

相似问题

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