dvaknheo
V2EX  ›  问与答

DNMVCS 1.1.2 发布

  •  
  •   dvaknheo · Aug 25, 2019 · 1941 views
  •   You need to sign in to view this topic
    This topic created in 2614 days ago, the information mentioned may be changed or developed.

    DNMVCS 1.1.2 发布。

    这么多个 PHP 框架,为什么要用 DNMVCS ? 因为 DNMVCS 是无框架派者做的 PHP 框架。 包括有:

    1. 框架,只做最小的事情。 不要问 XXX 方案在 XX 框架下如何做。 而是问 XXX 方案应该如何用 PHP 去做。

    2. 最小的耦合代码。

    使用 DNMVCS 框架的系统,只有入口类和 DNMVCS 系统耦合。

    如果你的普通业务代码要用到 DNMVCS 的代码 ,那么肯定是你搞错了什么。

    使用 DNMVCS 的业务系统,是基于组合,而不是继承的。

    1. 是实现了“表面调用形式不变,实际实现形式可变”的框架。

    说得五花八门天花乱坠的 DI ,Facades。

    就是为了一个: 如果发生了意外,比如发生安全漏洞,能否在不更改框架文件下解决。 能。

    1. 0 依赖

    0 依赖也是特点? 至少我们不会因为下游不稳定而出现问题。

    5 swoole

    附带 swoole 支持。

    如何开始

    composer require dnmvcs/framework:1.1.2
    ./vendor/bin/dnmvcs --create
    ./bin/start_server.php --no-swoole
    
    

    示例代码。从教程,你可以完整的了解 DNMVCS 情况

    <?php // view/test/done.php ?>
    <!doctype html><html><body>
    <h1>test</h1>
    <div><?=$var ?></div>
    </body></html>
    
    <?php
    // app/Controller/test.php
    namespace MY\Controller;
    
    // use MY\Base\BaseController;
    use MY\Base\ControllerHelper as C;
    use MY\Service\MiscService;
    
    class test // extends BaseController
    {
        public function done()
        {
            $data=[];
            $data['var']=C::H(MiscService::G()->foo());
            C::Show($data); // C::Show($data,'test/done');
        }
    }
    
    <?php
    // app/Service/MiscService.php
    namespace MY\Service;
    
    use MY\Base\ServiceHelper as S;
    use MY\Base\BaseService;
    use MY\Model\NoDB_MiscModel;
    
    class MiscService extends BaseService
    {
        public function foo()
        {
            $time=NoDB_MiscModel::G()->getTime();
            $ret="<".$time.">";
            return $ret;
        }
    }
    
    <?php
    // app/Model/NoDB_MiscModel.php
    namespace MY\Model;
    
    use MY\Base\BaseModel;
    use MY\Base\ModelHelper as M;
    
    class NoDB_MiscModel extends BaseModel
    {
        public function getTime()
        {
            return DATE(DATE_ATOM);
        }
    }
    
    <?php
    require(__DIR__.'/../headfile/headfile.php');
    
    $options=[];
    $path=realpath(__DIR__.'/..');
    $options['path']=$path;
    $options['namespace']='MY';
    \DNMVCS\DNMVCS::RunQuickly($options, function () {
    });
    
    

    项目地址:

    https://github.com/dvaknheo/DNMVCS

    欢迎大家给个宝贵意见。

    2 replies  •  2019-08-25 16:43:30 +08:00
    dvaknheo
        1
    dvaknheo  
    OP
       Aug 25, 2019
    自从上次 1.1.0 更新 后,一直没做版本发布。 作为一个目前还没项目在用的库,是否发布也没什么重要吧。发版本,主要还是想听听有人说出什么建议。0 反馈 是始终做不好东西的。
    我没有别的渠道宣发,只有这里,和知乎两个地方。

    DNMVCS 的特点其实很多,受限于我的个人表达,没怎么体现出来。我希望真有人提出,原来这是什么什么特点。
    另一方面,肯定 BUG 也不少, 也有好些我在文档里没提到的,以为大家都懂的,实际上漏掉了。

    这就需要沟通,交流,使用,这样才能进步。

    我希望这一年内,DNMVCS 系统有机会上线 一个项目。这样就能在实践中锻炼出来了。才有更多动力。

    末了,我想给这个框架改个名字,DN - MVCS 这个我觉得可以理解,但是一堆字母毕竟对人不友好。
    dvaknheo
        2
    dvaknheo  
    OP
       Aug 25, 2019
    发布区域不对,我想发在 PHP 区
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5346 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:37 · PVG 16:37 · LAX 01:37 · JFK 04:37
    ♥ Do have faith in what you're doing.