V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ning1022
V2EX  ›  PHP

想自己写个 php 框架,经常 tp,yii 等框架

  •  
  •   ning1022 · 2015-08-14 15:56:44 +08:00 · 3616 次点击
    这是一个创建于 3373 天前的主题,其中的信息可能已经有所发展或是发生改变。

    求大神给点建议。
    自己写一个效率应该会高些。
    我最近的项目都是写简单的功能,感觉自己写的代码还没有tp,yii多,所以想写个轻量级的框架。

    17 条回复    2015-09-06 12:03:09 +08:00
    shiny
        1
    shiny  
       2015-08-14 16:03:16 +08:00
    很久以前也有这样的想法,从2010年写到2015年,一年一个样 😂

    我个人心得是多看点非 PHP 的框架,会有启发。
    fising
        2
    fising  
       2015-08-14 16:05:25 +08:00
    三行代码的框架:

    require_once 'controllers/'.$_GET['c'].'.php';
    $c = new $_GET['c'];
    $c->$_GET['m'] ();
    show8salary
        3
    show8salary  
       2015-08-14 16:23:42 +08:00
    建议给不了,只能给点精神上的鼓励~
    Feiox
        4
    Feiox  
       2015-08-14 16:24:48 +08:00
    感觉,PHP 上造框架是最容易的。你去其他的 Python Ruby Java 上,光类似 socket WCGI 这些协议、接口就够你折腾了一段时间的,更不用说各自并发模型(多进程、线程池、异步事件驱动)以及线程安全性等一堆问题。但,用 PHP 写完框架,除了联系一点抽象能力,还学会了什么呢?
    ning1022
        5
    ning1022  
    OP
       2015-08-14 16:25:22 +08:00
    @shiny 我研究了几天设计模式,感觉还行!以前试着写过一个,但是放弃了。
    rming
        6
    rming  
       2015-08-14 16:35:12 +08:00   ❤️ 1
    你需要学习:
    单一入口
    单例模式
    工厂模式
    依赖注入
    URL Router
    ORM
    PSR-0 Autoloading Standard
    Composer autoload


    最好的办法就是读几个流行框架的源码,

    推荐阅读:
    CI 源码(因为够老)
    Laravel 源码(因为够新,尤其是 router 和 ORM)
    另:
    https://github.com/fabpot/twittee
    自己写的:
    https://github.com/Rming/YAMini
    https://github.com/Rming/PDOAdapter
    rming
        7
    rming  
       2015-08-14 16:37:38 +08:00
    好像新版本的 slim 也不错,lua 里有个 lapis 的也不错,https://github.com/leafo/lapis,反正就是多看多写。。
    yakczh
        8
    yakczh  
       2015-08-14 22:04:17 +08:00
    @rming
    PDOAdapter 中
    where(
    [
    'role_id' => 2,
    'age >=' => 20
    ],
    是不是用
    where(
    [
    ['role_id','=',2],
    ['age',' >=' ,20]
    ],

    更简单一些?
    rming
        9
    rming  
       2015-08-14 22:38:29 +08:00
    @yakczh 恩,只是写完就懒的改了,我也是个菜鸟
    zts1993
        10
    zts1993  
       2015-08-15 00:22:37 +08:00 via Android
    说真的这个语言只能写出一些不伦不类的框架。框架重要的是思想和语言层面的支持,现在很多人不具备第一者的情况下使用拙劣的技术写出了拙计的框架,。。

    后面的人觉得自己已经很牛逼了,可以写出超越前人的东西,其实是过于自信了。。

    但是造轮子没有什么不好。可以让你更清醒认识自己,认识你所用的技术。就这样
    lvfujun
        11
    lvfujun  
       2015-08-15 13:44:32 +08:00
    哈哈,,其实框架核心就那点东西,经典mvc思想,只是外面的扩展功能太多,导致的框架看起来好牛逼,其实就是一堆堆模块堆起来的。只要是php实现的php框架就没有运行效率可言。只能说提高开发效率和团队合作效率。
    lvfujun
        12
    lvfujun  
       2015-08-15 13:45:43 +08:00
    哈哈,楼主其实我以前自己也写过简单的mvc框架,最终没坚持下去。
    wayne712
        13
    wayne712  
       2015-08-15 15:04:16 +08:00
    dreamtrail
        14
    dreamtrail  
       2015-08-15 19:05:30 +08:00
    我就用自己写的框架,用自己写的东西,出了问题容易明白。
    sensui7
        15
    sensui7  
       2015-08-17 18:24:45 +08:00
    我最早也有这种想法, 实现了一个简单的 mvc 后,我放弃了, 意义不大.

    原因是框架够多了,很多都是大神写的, 我自认我写的没人家好. 何况如果别人要看参与项目的话, 看到你自己写的框架,我估计他想哭, 他还要花很多时间搞懂你的东西.
    chaegumi
        16
    chaegumi  
       2015-08-19 09:15:10 +08:00
    codeigniter 很轻量的
    shoaly
        17
    shoaly  
       2015-09-06 12:03:09 +08:00 via Android
    关键的问题是,好的框架维护期都是以年为单位的,除了框架本身,还要维护文档。
    自己写,一时爽,根本没法维护
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1041 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:41 · PVG 03:41 · LAX 11:41 · JFK 14:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.