网站搭建要多少钱,php wordpress配置,泉州最好的网站建设公司,wordpress的模板是什么discuz_application在/source/class/discuz/discuz_application.php中。 discuz_application继承自抽象类discuz_base discuz_application主要实现对运行环境、配置、输入、输出、数据库、设置、用户、session、移动模块、计划任务、手机预览等方面的初始化。 instance()函数来… discuz_application在/source/class/discuz/discuz_application.php中。 discuz_application继承自抽象类discuz_base discuz_application主要实现对运行环境、配置、输入、输出、数据库、设置、用户、session、移动模块、计划任务、手机预览等方面的初始化。 instance()函数来示例化discuz_application, 构造函数中 public function __construct() { $this-_init_env(); $this-_init_config(); $this-_init_input(); $this-_init_output(); } 初始化了运行环境、系统配置、输入、输出。 在init()函数中又进行一部分初始化 public function init() { if(!$this-initated) { $this-_init_db(); $this-_init_setting(); $this-_init_user(); $this-_init_session(); $this-_init_mobile(); $this-_init_cron(); $this-_init_misc(); } $this-initated true; } 单纯看这个代码会让人很疑惑为什么初始化操作不放在一块呢分成功两个函数。这个时候看下/forum.php中的代码如图就明白了。 discuz_application实例化后设置var[mod]和cachelist 之后才可以调用init()函数。 其实这里把mod和cachelist设计为discuz_application构造函数参数即可然后用一个init()函数完成初始化即可。 个人的感觉/forum.php中改成这种模式应该更好 C::app()-var[mod] mod; C::app()-cachelist $cachelist; C::app()-init(); f new forum(C::app()) f.doSomething() 这样子代码简练易懂易改易扩展。 此外还有一个不好的地方/source/class/class_core.php 中的core包装了discuz_application的实例化而改文件又声明了一个DB对discuz_database的映射。 而在discuz_application的数据库初始化函数_init_db()中使用DB 导致两个文件相互引用依赖这也是导致discuz_application的初始化一部分在构造函数中一部分在init()函数中的原因之一。 6 之前看到有人评论discuz的架构不好当时想毕竟使用这么广泛、发展这么久的系统应该不至于架构不好吧要不怎么能够持续这么久的改进呢。 现在看来架构还真的是不敢恭维。想从里面学习架构的东西感觉是有点难喽。 转载于:https://www.cnblogs.com/alleyonline/p/8367763.html