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, // 应用层配置,需要根据实际项目导入
~~~
- 欢迎使用swoolefy
- 环境说明
- 开发部署
- 安装
- 创建应用
- 启动|停止服务
- nginx代理
- 创建Controller
- 应用结构
- App应用对象
- Event请求处理
- 超全局管理
- 热更新
- inotify实现worker进程热重启
- http服务
- 应用层配置
- 协议层配置
- 路由规则
- 控制器
- 数据模型
- websocket服务
- 应用层配置
- 协议层配置
- 数据封装格式
- 控制器
- 数据模型
- 二进制数据处理
- rpc服务
- 应用层配置
- 协议程配置
- 数据包协议格式
- 服务控制器
- 服务数据模型
- udp服务
- 应用层配置
- 协议层配置
- 数据包封装格式
- 控制器
- 存在问题
- 常用组件
- log
- view
- session
- cache(redis)
- db(mysql)
- mongodb
- 其他服务管理
- 自定义进程管理
- 异步任务管理
- 内存表管理
- 定时器管理
- 异常捕捉处理
- 进程池管理
- systerm采集进程服务