内容简介:在这篇文章名字中使用优秀是经过我这两天研究后决定的。原因是我在使用了这么多年的正如我在一开始入门编程时,仅会用
在这篇文章名字中使用优秀是经过我这两天研究后决定的。
原因是我在使用了这么多年的 oop
后再见到 function
的惊讶。
正如我在一开始入门编程时,仅会用 html
后来半推半就的了解了点 asp
,第一次看到别人的 asp
代码用了函数定义一样。
我也不知道文章会如何分,在未完成之前就随手记吧。
通过对入口文件分析来说说 oop
和 函数式
的不同
-
大部分的
oop习惯于使用单入口,因为单入口更加方便处理,使用基类进行处理让系统更加完整,可以通过基类进行解耦,不用过多关注业务逻辑之外的架构。 -
在看到
destoon后让我想到了discuz!,当年在使用论坛程序的时候我们就在用了这样的方式。 总结特点如下:命名空间
-
暂且不说
discuz!单入口解决方案。我这里研究了下destoon的分站解决方案。destoon的分站首页和主站首页用了相同的入口文件-
入口文件引入的公共文件
common.inc.php定义几个变量$city_domain = $city_template = $city_sitename = ''; -
如果开启了分站
$DT['city']为0 未开启 为1 开启 这里使用了缓存 导致比较难以明确$DT['city']的来源 具体可以通过查看cache_module()方法来确认。 -
如果开启分站则加载分站处理公共脚本
city.inc.php; -
通过匹配域名
getenv('http_host')来获取到网站访问域名,然后去city表中查询域名对应的分站,如果存在则,将表查询的id赋给cityid,来确定有分站。 -
通过
cityid再次得到分站信息然后赋值$c = $db->get_one("SELECT * FROM {$DT_PRE}city WHERE areaid=$cityid"); $city_name = $c['name']; $city_domain = $c['domain']; $city_template = $c['template']; -
得到了城市分站相关信息模板设置,然后就是堵数据处理模板了。
-
入口文件引入的公共文件
-
通过3的分析,再次让我感受到了
destoon作者设计的苦心。我们在用oop在基类中的构造方法中也是完成这一套逻辑。同样跟oop对比后,我们发现我们对于oop的认同感增强了,而对于函数式这种写法也更加排斥。 因为你不知道某个变量来自于哪里,尤其是我们用extract($array)后的崩溃感。
命名空间与函数和变量隔离
-
在函数式中我们没法定义两个相同名称的
funciton; -
在
oop中我们可以在不同的类中定义相同名称的function,但是在公共函数文件中仍然跟函数式一样无法定义相同名称的function; -
命名空间的出现让我们避免了这个问题。当我们对一个
php语言文件顶部增加namespace Foo;的时候,我们就将这个文件划分到了Foo空间下。如下面对的代码.namespace Foo; function base64_urlSafeEcode($data){ $find = ['+', '/']; $replace = ['-', '_']; return str_replace($find, $replace, base64_encode($data)); }这个时候我们调用
base64_urlSafeEcode()的时候需要使用\Foo\base64_urlSafeEcode();当然可以将这个方法明明为base64_encode()。之所以定义不同名称是为了更好让人理解,这个base64编码方法是url 安全的。
以上所述就是小编给大家介绍的《destoon's design 一 oop pop and namspace》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
一个APP的诞生
Carol 炒炒、刘焯琛 / 电子工业出版社 / 2016-7-1 / 79
在移动互联网高度发达的今天,一个个APP,成为我们通向网络世界的窗口。它的诞生流程,令不少对互联网世界产生幻想甚至试图投身其中的年轻人充满了好奇。 《一个APP 的诞生》就是这样一步一步拆分一个APP 的诞生过程。从前期市场调研,竞品分析开始,一直到设计规范,界面图标,设计基础,流程管理,开发实现,市场推广,服务设计,甚至跨界融合,都有陈述。 《一个APP 的诞生》被定义是一本教科书,......一起来看看 《一个APP的诞生》 这本书的介绍吧!