第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

SWOOLE 從入門到放棄之寫個小框架(十)

標簽:
PHP

接下来该写什么呢,改造App.php吧。

首先创建配置文件config/app.php,代码如下

<?php
/**
 * APP配置
 */
return [
    'name'      => 'server',                            //项目名称
    'namespace' => 'app',                               //项目命名空间
    'path'      => realpath (__DIR__.'/../app/'),  //项目所在路径
    'gzip'      => 0,                                    //gzip 等级, 请查看  https://wiki.swoole.com/wiki/page/410.html

    //server设置
    'ip'        => '0.0.0.0',   //监听IP
    'port'      => 9527,        //监听端口
    'server'    => 'websocket' ,     //服务,可选 websocket 默认http

    'set'       => [            //配置参数  请查看  https://wiki.swoole.com/wiki/page/274.html
        'daemonize'             => 0 ,
        'enable_static_handler' => TRUE ,
        'document_root'         => realpath (__DIR__.'/../static/') ,
        'worker_num'            => 4,
        'max_request'           => 10000,
        'task_worker_num'       => 4,
    ],

];

修改 frame/base.php,读取config/app.php,向框架注册命名空间和其所在路径 ,增加如下代码

//注册项目命名
\Piz\Loader::addNamespace (config('app.namespace'),config('app.path'));

修改frame/Lib/App.php ,修改后的代码如下

<?php
namespace Piz;
class App
{
    //实例
    private static $instance;
    //映射表
    private static $map = [];
    //防止被一些讨厌的小伙伴不停的实例化,自己玩。
    private function __construct ()
    {
    }

    //还得让伙伴能实例化,并且能用它。。
    public function get_instance(){
        if(is_null (self::$instance)){
            self::$instance = new self();
        }
        return self::$instance;
    }

    public function http($server,$request,$response){
        if($request->server['request_uri'] == '/favicon.ico') return ;
        $req    = Request::get_instance ();
        $req->set($request);
        $router = Router::get_instance ()->http($req->server['request_uri']);

        $app_namespace  = Config::get_instance ()->get('app.namespace');
        $module         = $router['m'] ;
        $controller     = $router['c'] ;
        $action         = $router['a'] ;
        $param          = $router['p'] ;
        $classname      = "\\{$app_namespace}\\modules\\{$module}\\{$controller}" ;

        if(!isset(self::$map[$classname])){
            $class      = new $classname ;
            self::$map[$classname]         = $class;
        }
        try{
            //测试效果
            if(!empty(ob_get_contents ())) ob_end_clean ();
            ob_start();
            self::$map[$classname]->$action($param);
            $content = ob_get_contents();
            ob_end_clean();
            $response->end($content);
        }catch(\Exception $e){      //在此处返回 404错误的原因是因为加载器已经在查找不到文件时有说错误说明
            $response->header('Content-type',"text/html;charset=utf-8;");
            $response->status(404);
            $response->end('404 NOT FOUND');
            return ;
        }
    }
}

App->http方法增加了一个参数$server,所以frame/Lib/Server.php的onRequest方法也要同时修改,修改后的代码如下

public function onRequest($request,$response){
        App::get_instance()->http ($this->server,$request,$response);
    }

创建项目文件app/modules/index/index.php,代码如下

<?php
<?php
namespace app\modules\index;
class index
{
    public function init(){
        echo  date('Y-m-d h:I:s'),'<br/>';
        echo __CLASS__;
    }
}

运行效果如下图图片描述

今天就写到这了,累了。明天开始修改frame/Lib/Server.php

點擊查看更多內(nèi)容
1人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消