美文网首页
PHP“企业模式”直观描述(lavale,yii,thinkph

PHP“企业模式”直观描述(lavale,yii,thinkph

作者: 美雨知春 | 来源:发表于2020-09-07 18:33 被阅读0次

    相信大家都接触过php框架吧,lavale,yii,thinkphp,简单来书这些都是企业模式。

    这些模板虽然各不相同,各具优势,但是归根结底都是一样的,框架直接拿来使用很痛快,但是如果能够深入挖掘这些框架,会有更深入的理解,针对不同的业务可以有自己的框架。

    注册表(全局配置信息-数据库,用户请求信息)-》用户请求数据分析-》找到执行文件执行用户请求-》返回页面(或者数据)

    单例模式建立注册表,这部分在“单例模式中”有介绍,把数据库配置和用户请求做成全局变量,便于传输

    用户请求信息分析:对用户信息指令进行分析,找到执行文件执行

    返回页面,或者结果:如果需要页面直接include一个页面,如果需要结果,返回一个json

    全是文字,没有代码是吧。之前写过

    下面是一个注册表:

    ``<?php

    namespace woo\base;

    class ApplicationRegistry extends Registry{

        private static $instance;

        private $freezedir ='data';

        private $values = array();

        private $mtimes = array();

        private function instance(){

            if(!isset(self::$instance)){

                self::$instance = new self();

            }

            return self::$instance;

        }

        protected function get($key){

            $path = $this->freezedir.DIRECTORY_SEPARATOR.$key;

            if(file_exists($path)){

                clearstatcache();

                $mtime = filemtime($path);

                if(! isset($this->mtimes[$key])){

                    $this->mtimes[$key]=0;

                }

                if($mtime > $this->mtimes[$key]){

                    $data = file_get_contents($path);

                    return $this->values[$key] = unserialize($data);

                }

            }

            if(isset($this->values[$key])){

                return $this->values[$key];

            }

            return null;

        }

        protected function set($key, $val){

            $this->values[$key] = $val;

            $path = $this->freezedir.DIRECTORY_SEPARATOR.$key;

            file_put_contents($path, serialize($val));

            $this->mtimes[$key] = time();

        }

        static function getDSN(){

            return self::$instance->get('dsn');

        }

    }``

    指令分析

    class CommandResolver{

    function getCommand( $request)

    {   //这块大家发挥的空间很大,可以随意哦

    }

    function execute()

    {

        include("cmdfile");

    }

    怎么组合?,告诉你,一个run()可以init配置,加载request,execute

    如果有人看到我的技术文章,有疑问,欢迎私信,有问必答

    相关文章

      网友评论

          本文标题:PHP“企业模式”直观描述(lavale,yii,thinkph

          本文链接:https://www.haomeiwen.com/subject/xnulektx.html