PHP 入门, 写了个简易框架

2016-06-01 09:57:20 +08:00
 wwwicbd

https://github.com/icbd/junior_framework

PHP 入门, 写了个简易框架. 没大项目经验,想把框架丰富起来但是思路不清,恳请各位指点🙏

4741 次点击
所在节点    PHP
26 条回复
ybmimo
2016-06-01 10:03:02 +08:00
写框架之前可以先参考下其他的流行框架是如何弄得,
刚看了下,就当前的代码而言,有两个点可能需要调整下,第一个是应该用 composer 来组织代码,第二个是应该把入口文件 index.php 单独提出来放到 public 目录,目录名随意
5dkgansm
2016-06-01 10:03:37 +08:00
不要为了丰富框架而去丰富,做成插件、扩展的形式怎么样?
fruit
2016-06-01 10:16:47 +08:00
@ybmimo 请问, index.php 放入目录中有什么优点?
widdy
2016-06-01 10:56:31 +08:00
@fruit 我的理解,这样的话 web 服务器把 index.php 的目录作为根目录,可以避免客户端访问到其它目录的敏感文件等。
ybmimo
2016-06-01 13:10:37 +08:00
widdy 正解,能提高安全性
cxbig
2016-06-01 15:03:02 +08:00
- 参考一下如 Laravel 的加载机制,用 namespace 和 use ,都 php7 了还在 Hello::index 这样具体的 action 里用 require_once Twig_Autoloader 不合适, controller 应该有个基础类,处理 request 、 response ,加载各种基本组件等,其他实际的 controller 继承即可。
- 另外 model 写成和 view 模板对应的类,那么和数据库对接的类放哪?层级关系怎么处理呢?
Chappako
2016-06-01 15:13:38 +08:00
1. https://github.com/PizzaLiu/PHP-FIG 先读一下 FIG 标准吧,关于语法的标准,和自动加载的部分
Chappako
2016-06-01 15:19:21 +08:00
1. https://github.com/PizzaLiu/PHP-FIG 先读一下 FIG 标准吧,关于语法的标准,和自动加载的部分
2. 入口文件应该放到 public 或者 public_html 下,其他放在外面
3. 第三方资位置,参考 FIG
4. 框架名叫 Junior ,程序核心目录又叫 focus ,你是想逼死谁么?
5. MVC 各层的抽象呢?
6. 注释写什么 created by, date, time ,谁关心你这个啊,看 phpdoc 文档去
tanteng
2016-06-01 15:19:25 +08:00
现在做框架貌似简单多了,用 composer 管理组件,一个路由功能,一个模板功能,就是最简单的框架了,要什么功能就装什么组件
Moker
2016-06-01 15:24:15 +08:00
@cxbig namespace 和 use 和 SPL 自动加载用起来爽翻天,再也不用担心文件忘记引用或者引用过多文件的问题
Lpl
2016-06-01 18:53:43 +08:00
我有个问题...php 写框架很好写么?有个室友做 php 的,他说他写了好多框架了
cxbig
2016-06-01 21:48:13 +08:00
@Lpl 框架这东西想怎么自定义都行,问题在于自己搭的框架别人可能不熟悉,那么团队合作就会有冲突。还有各种安全机制不一定做到位。光能跑起来是不够的。
thenbsp
2016-06-01 21:55:26 +08:00
define('DS', DIRECTORY_SEPARATOR);

一直没搞懂这么定有什么意义?难道只是为了短?最早见过它是在 CakePHP 里,后来看过好几个开源项目都这么写,返正我是接受不了紧紧为了短一些就去得复定义一下常量。。。
wjfz
2016-06-01 21:57:30 +08:00
@thenbsp
为了避免在 Windows 下可能出现的问题。
thenbsp
2016-06-01 22:06:12 +08:00
@wjfz 这跟 windows 下出现问题有毛线关系,这货不就是目录分隔符嘛,我疑问的是为什么不直接使用 DIRECTORY_SEPARATOR 而非要把它再定义一遍?难道只是为了短?
cankoor
2016-06-01 22:15:30 +08:00
缺少事件机制,可以加上。
Jakesoft
2016-06-02 01:02:01 +08:00
我还写过一个 cms 呢,就不拿出来秀了
freewheel
2016-06-02 02:09:08 +08:00
m
wwwicbd
2016-06-02 11:57:10 +08:00
@cxbig
谢谢.

Model 和 Controller 的设计还没想好,.
用 ThinkPHP 的时候把处理全放在 Controller 里了,Model 几乎没用到;
用 Ruby on Rails 的时候 Model 就非常重.

还有就是 Model 和 DB 之间分工, 这个也还没想清楚.
wwwicbd
2016-06-02 12:04:45 +08:00
@Chappako
谢谢.

1. 看了 FIG 的文档, 挺有用. IDE 用的 phpstorm, code format 的默认选项和文档里的建议几乎全部一致.
2. 已修改
3. 本来想用 composer 的, 但在我机器上有些问题(分配了超多的内存然后警告退出)
4. 已修改
5. 各层抽象还是 to do list, 一步步写
6. IDE 默认的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/282654

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX