[超详细手写PHP框架
上一节我们简单介绍了框架的一些思想和需要的技术栈,今天开始我们着重代码组织和编写。
首先我们要思考的问题,项目目录怎么规划,项目名称,命名空间,框架的扩展性(如果框架写出来别人看不懂,写个功能很复杂那就没人用这个框架)等等,这些问题想清楚之后再开始一步一步编写。
例如:这里小编规划的名字,整个项目叫『Fine』Fine框架(分为两部分,一部分为框架主体部分,另一部分为用户编写实际逻辑部分)
第一步:创建文件夹第二步:初始化Composer(安装composer,大家先自行百度,后面有时间再专门写一篇关于composer的文章),在命令行下执行leiyu@leiyu-MacBook-Air > ~/data/Fine#> composer init按提示输入信息,参照如下图:
具体参数需参考 composer 官网文档。
第三步:规划目录
app,将来用户主逻辑目录
config,配置文件目录
public,入口目录(我们采用单文件入口模式,当然这里还有nginx,apache rewrite配置我们后面再讲)
src,主框架目录
storage,存储目录比如缓存,日志等
第四步:composer.json配置 autoload 用psr-4的规范来配置,如下:"autoload": {"psr-4": {"App": "app/","Fine": "src/Fine"},"files": ["src/Fine/helpers.php"]}然后执命令行执行: leiyu@leiyu-MacBook-Air > ~/data/Fine#> composer dumpautoload , 这个时候我们发现项目目录下会自动多出一个目录vendor,里面还有一些文件。这个就是整个项目的autoload加载器了。
第五步:我们测试一下autload是否可用。我们在app目录下建立 hello.php
然后在public/index.php 里使用
我们看页面是否显示 " hello world ! ",当然使用命名行和浏览器打开都是可以的。如果到这一步没问题,我们整个autoload就可以了。
那么我们目录和入口文件已经有了,接下来使用第三方包看如何能够优雅的组织起来,组成我们的框架。大家有什么问题可以留言我实时解答。
[手写PHP框架-1技术栈储备和框架思想