Heim >Backend-Entwicklung >PHP-Tutorial >#年前福利#Phalcon框架部分核心类的伪实现

#年前福利#Phalcon框架部分核心类的伪实现

WBOY
WBOYOriginal
2016-07-25 08:48:581078Durchsuche
自从在开源中国看到Phalcon这个开源框架,并看了其开发文档后,觉得其文档不仅仅是在讲他的框架,也不仅仅是在说明PHP这门语言,而是更大程度上在讲解如何设计一个框架、如何高效优雅地进行软件开发。

感兴趣的童鞋强烈推荐也阅读一下:上链接:http://docs.phalconphp.com/en/latest/index.html

但因为Phalcon框架是用C写的扩展,看不到PHP相关的源代码,但其开发思想很值得学习、参考、借鉴,所以就按照其思路实现了其中的部分核心类,在这里分享一下。目的:

1、通过Phalcon的伟大思想自主实现Phalcon部分类,加深对其的理解,以及自已的编码能力;
2、作为通用的核心类,实现后合适地应用于日后的项目;
3、规范自己的开发流程(测试+示例+生成发布代码);

暂时实现的只有两个类,分类是DI( Dependency Injection)类和Loader类(Universal Class Loader),后续有时间可能会再实现其他的。感兴趣的同学也可以试下~

附件列表:
1、全部文件压缩包(源代码、发布代码、示例、测试)
2、运行的效果截图
3、其中FDI的示例代码(为查看方便,也可以在下载代码中查看)

PS:小编用刚写的自动加载类FLoader,替换现有一项目的自动加载类,居然可以完美替换而无任何报错,小小开心中~~~~ #年前福利#Phalcon框架部分核心类的伪实现 #年前福利#Phalcon框架部分核心类的伪实现 #年前福利#Phalcon框架部分核心类的伪实现 #年前福利#Phalcon框架部分核心类的伪实现
  1. require dirname(__FILE__) . '/../release/FDI.php';
  2. /** ------------------ 创建与设置 ------------------ **/
  3. //获取FDI
  4. $fdi = FDI::getInstance();
  5. //演示的key
  6. $key = 'demoKey';
  7. /** ------------------ 设置 ------------------ **/
  8. //可赋值的类型:直接赋值、类名赋值、匿名函数
  9. $fdi->set($key, 'Hello FDI!');
  10. $fdi->set($key, 'Simple');
  11. $fdi->set($key, function(){
  12. return new Simple();
  13. });
  14. //设置途径:除了上面的set(),你还可以这样赋值
  15. $fdi->setDemoKey('Hello FDI!');
  16. $fdi->demoKey = 'Hello FDI!';
  17. $fdi['demoKey'] = 'Hello FDI!';
  18. /** ------------------ 获取 ------------------ **/
  19. //所以你可以这样取值
  20. echo $fdi->get('demoKey'), "\n";
  21. echo $fdi->getDemoKey(), "\n";
  22. echo $fdi->demoKey, "\n";
  23. echo $fdi['demoKey']. "\n";
复制代码


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn