/t/121103 想说几句

2014-07-07 13:06:01 +08:00
 zencoding
原文见: /t/121103

感谢诸位的热烈讨论,感谢@dongbeta 指出的低级错误

”框架的概念“、”什么是最好的框架“、”PHP语言的好与坏 “

此类问题不想讨论,根据google的结果,貌似也讨论不出什么结果来。

仁者见仁智者见智的东西。不是吗?

只要看着简单、用着舒服,上手方便,扩展容易,它就是最好的

JunePHP只是一个非常基础,非常轻量的”框架“,拿它和Yii和Laravel比较,太看得起它了

当然,在很多大牛看来这是一些非常糟糕的代码。

但是我想说的是,对一部分人来说,够用了
3088 次点击
所在节点    分享创造
9 条回复
kawaiiushio
2014-07-07 13:13:59 +08:00
php是最好的语言 这是不可否认的233333
NemoAlex
2014-07-07 13:29:11 +08:00
其实对你自己有用就够了
AlanZhang
2014-07-07 13:30:31 +08:00
楼主能拿出东西来,还是挺不错的。
dongbeta
2014-07-07 13:47:13 +08:00
我的经验是,造框架是很好的学习方法,不要想太多。大部分反对别人造轮子的人,其实连轮子都造不好(地图炮)。

另外建议遵循一个成熟的代码规范。估计来我司面试,第一个被刷下去的问题就是现在的代码的格式还不太好。
XadillaX
2014-07-07 13:49:07 +08:00
0. 0 PHP 是最好的语言 233333 (可惜我不会 。・゚・(つд`゚)・゚・
WildCat
2014-07-07 13:49:27 +08:00
@dongbeta 我司听着好奇怪,我厂多霸气
hging
2014-07-07 15:16:42 +08:00
ruby大法好。。。。。。。。。。。。。。。。。。。。。。
raincious
2014-07-07 16:48:34 +08:00
@dongbeta 轮子只有造出来才知道是不是好 :)

自己娱乐的代码和给大家用的代码是两种规范的。毕竟框架是偏底层的基础软件,要尽量稳定,保持一致性。所以建议楼主还是尽量先研究下基础知识和最佳操作,然后再写好漂亮的代码,最后才是给大家用,不要一开始就着急发布。

另外,其实冷水的说法,不太会有人真的去用楼主的框架,除非你已经能战胜至少ThinkPHP。真的想让别人去用,得先实现两点:1、让框架足够好用,让用户能以最快速度开发出产品;2、框架足够稳,能支撑大量代码和库的管理,后期也不用因为各种问题转型(或者转型很容易)。这两点很难实现,我自己的框架写了近1年多,没胆量拿出来(当然,主要是自己当初写那些代码的时候没学会用PHPUnit,自己又喜欢一开始就把功能做大,导致Bug这一堆,那一堆)。

另外给个建议(针对那位要提供ORM和其他组件的同学),微型框架内还是建议不要强制绑定各种库甚至模板引擎等等,给框架用户足够的自由可以自行选择然后引用到框架里。时刻保持灵活可替换,这样才能保证你自己的框架不会被换下来。

就楼主这个框架而言:

https://github.com/willper/JunePHP/blame/master/application/initialize.php#L29

redirect($url, $time = 0)函数就犯了个大忌,因为会输出不符合HTML规范的代码。而框架本身应该确保不会产生脏内容。

autoLoad($class_name)这又有个大忌,所有的类库都得在define('CORE_PATH', APP_ROOT . '/core/');定义的范围内。而这个autoloader又不是Namespace的(只支持注册到这一层文件夹?Namespace得看文件系统的心情?),可能会跟Composer里注册的类冲突。

建议楼主仔细参考下PSR两个标准的Autoloader:

这里是PSR-0的Autoloader:
http://www.php-fig.org/psr/psr-0/

PSR-4的Autoloader:
http://www.php-fig.org/psr/psr-4/

所以总之,还不成熟,但作为一个学习的工具还是挺好的,毕竟将MVC底层实现出来,证明已经掌握了MVC相当的原理了。所以楼主加油!
zencoding
2014-07-07 18:30:46 +08:00
@raincious
感谢你的回复。

模板引擎和数据库都可以在https://github.com/willper/JunePHP/blob/master/application/core/base.php 轻松替换掉

redirect这个确实处理的不好,慢慢改掉

关于autoLoad,因为对这个项目定位在小微系统,结构不到用Namespace的程度,所以没有考虑将类库目录扩展到多级,还有就是个人觉得PHP的Namespace有些不伦不类,仅仅个人觉得

最后就是这个项目并不建议部署于生产,用来练手学习简单的MVC还是挺好的

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

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

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

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

© 2021 V2EX