-
Notifications
You must be signed in to change notification settings - Fork 41
Configuration
-
Publish server config file
php artisan vendor:publish --tag=fly-server
. -
Edit server config file
<project_root_dir>/fly.conf.php
. -
Publish app config file
php artisan vendor:publish --tag=fly-app
. -
Edit app config file
<project_root_dir>/config/laravelfly.php
.
Note: items prefixed with "/** depends " deverve your consideration. -
If you put some custome codes before
$app
inbootstrap\app.php
, e.g. definding some const, please move them to a new fileapp-before.php
at the same dir, then include this file inapp.php
and<project_root_dir>/fly.conf.php
.
- Edit
<project_root_dir>/app/Http/Kernel.php
, changeclass Kernel extends HttpKernel
to
if (defined('LARAVELFLY_MODE')) {
class WhichKernel extends \LaravelFly\MidKernel{}
} else {
class WhichKernel extends HttpKernel{}
}
class Kernel extends WhichKernel
- If you use tinker(), put this line at the top of
public/index.php
:
function tinker(){ return '';}
This line avoids error Call to undefined function tinker()
when you use php-fpm with tinker() left in your code.
-
exclude folders from code inspection in PHPStorm:
vendor/scil/laravel-fly-files/offcial_files
vendor/scil/laravel-fly/tests/offcial_files
-
composer require --dev "shixinke/php-ide-helper"
which is useful in IDE development. An alternative iseaglewu/swoole-ide-helper:dev-master
. -
Config and restart nginx: swoole http server lacks some http functions, so it's better to use swoole with other http servers like nginx. There is a nginx site conf example at
vendor/scil/laravel-fly/config/nginx+swoole.conf
. -
Connection pool.
'conn_name' => [
'driver' => 'mysql',
'pool'=>[],
...
],
- MySql coroutine can be used. Ensure
const LARAVELFLY_COROUTINE = true;
in fly.conf.php, then add 'coroutine' => true, to config/database. This feature is still under dev.
'mysql' => [
'driver' => 'mysql',
'coroutine' => true,
...
],
- edit `fly.conf.php'
'task_worker_num' => 10, // set a reasonable value
- edit config/laravelfly.php (optional)
'swoole-job' => [
'delay' => 0,
'memory' => 128,
'timeout' => 60,
'tries' => 0,
],
- for job: edit a job file
Event listener should `implements ShouldQueue.
public function __construct()
{
$this->swoole = true;
}
- for event listener: edit
App\Providers\EventServiceProvider
protected $swooleListeners = [
'App\Listeners\XxxListener',
];
-
install swoole with compile option
--enable-async-redis
-
edit config/database.php
'redis' => [
'client' => defined('LARAVELFLY_COROUTINE') && LARAVELFLY_COROUTINE &&
class_exists('Swoole\Coroutine\Redis') ? 'swoole-redis' : 'predis',
'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 0,
'var_serialize'=>false, // if serialize php var
],
],
note:
- not implemented methods: scan object sort migrate hscan sscan zscan
- no support cluster
- Start
- Coding Guideline
- Deploy and OS Configuration
- New API
- Design
- Dev about Mode Map
- Dev about Mode Backup