当前位置:Gxlcms > PHP教程 > #年前福利#Phalcon框架部分核心类的伪实现

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

时间:2021-07-01 10:21:17 帮助过:16人阅读

自从在开源中国看到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,替换现有一项目的自动加载类,居然可以完美替换而无任何报错,小小开心中~~~~
  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";

人气教程排行