There is no license information available for the latest version (dev-master) of this package.

this is a soulgame extension set

dev-master 2018-01-21 12:12 UTC

README

编写这个框架的原因主要是因为考虑使用php7,摈弃掉之前的过时语句。除此之外,方便管理扩展和编写自定义组件。

  1. 目录结构
  2. artisan工具
  3. 配置与组件

目录结构

api/
 config/
    main-local.php
    main.php
  controllers/
  models/
  runtimes/         #运行时文件,包括缓存文件、日志文件(错误日志和访问日志)
  views/
  web/
    index.php       #api应用入口
common
  config/
  filters/
  jobs/
  models/
  protobuf/       #PB文件可以通过配置文件修改
artisan/          #artisan工具应用(用于生产数据model、控制器、过滤器文件等),可自定义扩展
backend/          #后台应用
frontend/         #前台应用
vendor/           #Soulgame核心库和扩展库

artisan

artisan目录跟laravel工具中的artisan一样,用于生产模板文件等,只不过这里没有打包成一个文件,方便扩展

  • 生产model

 1. 带缓存的model,主要用于api应用

php artisan.php model Base namespace

 例如:php artisan.php model Base api\models\UserInfo 会在$project/api/models/下生产UserInfo.php,对应数据库表user_info

 2. 配置表model生成

  php artisan.php model config namespace

 3. 不带缓存的灵活ActiveRecord

  php artisan.php model active namespace
  • 生成过滤器文件
  php artisan.php make filter namespace
  • 生成控制器文件
  php artisan.php make controller namespace

配置与组件

 Soulgame应用配置分为通用配置和应用私有配置,通用配置放在common/config文件夹下,私有配置放在对应应用的config文件夹下,配置文件样例如下  common\config\main.php

//以下服务的ip都是内网ip
return [
    'server'=>'wolves',
    'environment'=>'local',
    'components'=>[
        'debug_parser'=>[
            'class'=>'soulgame\parser\BrowserParser'
        ],
       'db' => [//主从数据库组件
            'class'     => 'soulgame\db\Mysql',
            'master_config'=>[
                'dsn' => 'mysql:host=localhost;dbname=go_test',
                'username'  => 'root',
                'password'  => '123456',
                'charset'   => 'utf8',
                'collation' => 'utf8_general_ci',
                'prefix'    => '',
            ]
        ],
        'session'=>[				#session组件
            'class'     => 'soulgame\base\Session',
            'redis_config'=>[
                'class'=>'soulgame\redis\PRedis',
                'host'=>'localhost',
                'port'=>6379,
                'passwd'=>null,
                'options'=>[\Redis::OPT_PREFIX=>'server_0001', \Redis::OPT_SERIALIZER=>\Redis::SERIALIZER_PHP]
            ],
            'expire'=>180   //session缓存时间戳
        ],
    ]
];

api\config\main.php

  return [
    'id' => 'wolves-api',				#指明应用名称
    'basePath'=>dirname(__DIR__),		#应用基础路径
    'controllerNamespace'=>'api\controllers',	#该应用的控制器命名空间
    'pbNamespace'=>'PbWolves',					#protobuf文件类命名空间
    'logPath'=>dirname(__DIR__) . '/runtime/logs',	#日志文件目录
    'components'=>[									#应用组件
          'parser'=>[//解析器组件(必须)
              'class'=>'soulgame\parser\ProtobufParser',
          ],
        ···
  ];

以上配置中components中的配置都可以通过以下方式获取对应组件:

  $db = Soulgame::$app->get('db'); # 唯一参数为配置中组件key值