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采集進程服務