多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
1、创建应用,比如应用名称App(必须和swoolefy文件的设置的的名称一致) ``` php swoolefy create App ``` 执行上面命令后,会自动创建应用的App简单的必要目录结构,例如: ``` App |----Config // 应用层配置文件目录 |--config-dev.php |--config-gra.php |--config-prd.php |--defines.php |----Controller //控制器目录 |--IndexController.php // 默认控制器 |----Log // 日志目录 |----Runtime // 运行态目录 ``` 1)、在App\Config的配置目录下,会自动创建不同环境的应用层配置config文件和常量文件defines.php ``` App/Config |----config-dev.php |----config-gra.php |----config-prd.php |----defines.php ``` 2)、自动创建的应用层config.php的配置内容: ``` <?php return [ 'route_model' => 1, //1代表pathinfo,2代表普通url模式 'app_namespace' => APP_NAME, // 应用根命名空间 'components' => [ 'log' => [ 'is_delay' => true, 'class' => \Swoolefy\Tool\Log::class, 'channel' => 'application', 'logFilePath' => rtrim(LOG_PATH,'/').'/runtime.log' ] ] ] ``` 3)、自动创建的defines.php的常量配置内容: ~~~ <?php defined('APP_NAME') or define('APP_NAME','App'); defined('APP_PATH') or define('APP_PATH',dirname(__DIR__)); defined('ROOT_PATH') or define('ROOT_PATH',dirname(APP_PATH)); // 日志目录 define('LOG_PATH', APP_PATH.'/Log'); // 定义smarty(需要smarty的时候需要定义) define('SMARTY_TEMPLATE_PATH',APP_PATH.'/View/'); define('SMARTY_COMPILE_DIR',APP_PATH.'/Runtime/'); define('SMARTY_CACHE_DIR',APP_PATH.'/Runtime/'); ~~~ 4)、自动生成IndexController控制器文件内容: ~~~ <?php namespace {$APP_NAME}\Controller; use Swoolefy\Core\Application; use Swoolefy\Core\Controller\BController; class IndexController extends BController { public function index() { Application::getApp()->response->write('<h1>Hello, Welcome to Swoolefy Framework! <h1>'); } } ~~~ 2、初始启动服务 初始启动服务,会创建一些必要的配置文件。 ``` php swoolefy start App -dev ``` 执行完上面的初始化启动命令后,App目录下会自动生成两个文件 ``` |---------autoloader.php // 自动加载定义 |---------HttpServer.php // http的主服务类 ``` 同时会自动生成protocol/App的文件夹目录,App下面有对应的默认的协议层配置文件 ``` |--------config-dev.php |--------config-gra.php |--------config-prd.php ``` 自动生成的协议层config.php配置文件内容如下: ``` <?php /** +---------------------------------------------------------------------- | swoolefy framework bases on swoole extension development, we can use it easily! +---------------------------------------------------------------------- | Licensed ( https://opensource.org/licenses/MIT ) +---------------------------------------------------------------------- | Author: bingcool <bingcoolhuang@gmail.com || 2437667702@qq.com> +---------------------------------------------------------------------- */ // 加载常量定义,根据自己项目实际路径记载 include_once START_DIR_ROOT.'/'.APP_NAME.'/Config/defines.php'; // 加载应用层协议,根据自己项目实际路径记载 $app_config = include_once START_DIR_ROOT.'/'.APP_NAME.'/Config/config-'.SWOOLEFY_ENV.'.php'; // http协议层配置 return [ 'app_conf' => $app_config, // 应用层配置,需要根据实际项目导入 'application_index' => '', 'event_handler' => \Swoolefy\Core\EventHandler::class, 'exception_handler' => '', 'master_process_name' => 'php-http-master', 'manager_process_name' => 'php-http-manager', 'worker_process_name' => 'php-http-worker', 'www_user' => 'www', 'host' => '0.0.0.0', 'port' => '9502', 'time_zone' => 'PRC', 'swoole_process_mode' => SWOOLE_PROCESS,//swoole的进程模式设置 'include_files' => [], 'runtime_enable_coroutine' => true, 'setting' => [ 'reactor_num' => 1, 'worker_num' => 5, 'max_request' => 1000, 'task_worker_num' => 2, 'task_tmpdir' => '/dev/shm', 'daemonize' => 0, // http无状态,使用1或3 'dispatch_mode' => 3, 'reload_async' => true, 'daemonize' => 0, 'enable_coroutine' => 1, 'task_enable_coroutine' => 1, 'log_file' => __DIR__.'/log/log.txt', 'pid_file' => __DIR__.'/log/server.pid', ], // 是否内存化线上实时任务 'enable_table_tick_task' => true, // 热更新 //'reload_conf'=>[ // 'enable_reload' => true, // 'after_seconds' => 3, // 'monitor_path' => APP_PATH,//开发者自己定义目录 // 'reload_file_types' => ['.php','.html','.js'], // 'ignore_dirs' => [], // 'callback' => function() { // var_dump("callback"); // } //], ]; ``` <table><tr><td bgcolor=orange> 注意:在上面的协议层配置文件中 **require 应用层的文件**(即在App/Config下创建的配置文件),并赋值配置项"app_conf",如下代码块: </td></tr></table> ~~~ // 加载常量定义,根据自己项目实际路径记载 include_once START_DIR_ROOT.'/'.APP_NAME.'/Config/defines.php'; // 加载应用层协议,根据自己项目实际路径记载 $app_config = include_once START_DIR_ROOT.'/'.APP_NAME.'/Config/config-'.SWOOLEFY_ENV.'.php'; // http协议层配置 return [ 'app_conf' => $app_config, // 应用层配置,需要根据实际项目导入 ~~~