V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
zencoding
V2EX  ›  分享创造

/t/121103 想说几句

  •  
  •   zencoding ·
    wenpeng · 2014-07-07 13:06:01 +08:00 · 3173 次点击
    这是一个创建于 3797 天前的主题,其中的信息可能已经有所发展或是发生改变。
    原文见: /t/121103

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

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

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

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

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

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

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

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

    另外建议遵循一个成熟的代码规范。估计来我司面试,第一个被刷下去的问题就是现在的代码的格式还不太好。
    XadillaX
        5
    XadillaX  
       2014-07-07 13:49:07 +08:00
    0. 0 PHP 是最好的语言 233333 (可惜我不会 。・゚・(つд`゚)・゚・
    WildCat
        6
    WildCat  
       2014-07-07 13:49:27 +08:00 via iPhone
    @dongbeta 我司听着好奇怪,我厂多霸气
    hging
        7
    hging  
       2014-07-07 15:16:42 +08:00
    ruby大法好。。。。。。。。。。。。。。。。。。。。。。
    raincious
        8
    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
        9
    zencoding  
    OP
       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还是挺好的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3134 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:55 · PVG 21:55 · LAX 05:55 · JFK 08:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.