
рдЕрд╡рд▓реЛрдХрди
Swoft рдХреНрдпрд╛ рд╣реИ?
Swoft рдПрдХ PHP рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди microservice coroutine рдврд╛рдВрдЪрд╛ рд╣реИред рдпрд╣ рдХрдИ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ php рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдмрди рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЧреЛ, рдмрд┐рд▓реНрдЯ-рдЗрди рдХреЛрд░рдЯрд╛рдЗрди рд╡реЗрдм рд╕рд░реНрд╡рд░ рдФрд░ рдХреЙрд░рдЖрдЙрдЯ рдХреЙрдЗрди рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рддрд░рд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдкрд╛рд░рдВрдкрд░рд┐рдХ PHP-FPM рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рдореЗрдореЛрд░реА рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреНрд▓рд╛рдЙрдб рдврд╛рдВрдЪреЗ рдХреЗ рд╕рдорд╛рди рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рдорд╛рди рдЧреЛ рднрд╛рд╖рд╛ рд╕рдВрдЪрд╛рд▓рди рднреА рд╣реИрдВред
рддреАрди рд╡рд░реНрд╖реЛрдВ рдХреЗ рд╕рдВрдЪрдп рдФрд░ рджрд┐рд╢рд╛ рдЕрдиреНрд╡реЗрд╖рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, Swoft рдиреЗ PHP рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреНрд▓рд╛рдЙрдб рдХреЛ рд╕реНрд╡рд┐рдлреНрдЯ рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИ, рдЬреЛ PHP рдХреЗ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рдврд╛рдВрдЪреЗ рдФрд░ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред
Github
https://github.com/swoft-cloud/swoft
рд▓реЗрдЦ
рдпрд╣ Swoft рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓реНрд╕ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ, рдЬрд┐рд╕реЗ рд▓рдЧрд╛рддрд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЪрд░реНрдЪрд╛ рдФрд░ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред
рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓
рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рд╕реНрд╡рд┐рдлреНрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧреАрддрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
swoft:/www# composer create-project swoft/swoft swoft Installing swoft/swoft (v2.0.5) - Installing swoft/swoft (v2.0.5): Loading from cache Created project in swoft > @php -r "file_exists('.env') || copy('.env.example', '.env');" Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 84 installs, 0 updates, 0 removals - Installing swoft/stdlib (v2.0.5): Loading from cache - Installing swoft/server (v2.0.5): Loading from cache - Installing nikic/php-parser (v4.2.4): Downloading (100%) ...... toolkit/cli-utils suggests installing inhere/php-validate (Very lightweight data validate tool) toolkit/cli-utils suggests installing inhere/console (a lightweight php console application library.) ...... Writing lock file Generating autoload files
рдкреНрд░рд╛рд░рдВрдн
рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, Swoft рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдкрд░ рдЬрд╛рдПрдВ рдФрд░ Swoft рдХреЛ рдиреАрдЪреЗ рдХреА рддрд░рд╣ рд╢реБрд░реВ рдХрд░реЗрдВред
root@MyServer:/tmp/swoft# php bin/swoft http:start 2019/09/14-10:29:34 [INFO] Swoft\SwoftApplication:setSystemAlias(485) Set alias @base=/tmp/swoft 2019/09/14-10:29:34 [INFO] Swoft\SwoftApplication:setSystemAlias(486) Set alias @app=@base/app ...... 2019/09/14-10:29:35 [INFO] Swoft\Processor\ConsoleProcessor:handle(39) Console command route registered (group 14, command 42) Information Panel *********************************************************************** * HTTP | Listen: 0.0.0.0:18306, type: TCP, mode: Process, worker: 3 * RPC | Listen: 0.0.0.0:18307, type: TCP *********************************************************************** HTTP server start success ! 2019/09/14-10:29:35 [INFO] Swoft\Server\Server:startSwoole(492) Swoole\Runtime::enableCoroutine 2019/09/14-10:29:35 [INFO] ......
рд╕рдлрд▓рддрд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЖрдк рдкреЛрд░реНрдЯ рдХреЛ Http рдФрд░ Rpc рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ [ http://127.0.0.1.118186/ ] ( http://127.0.0.1:18306/ ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдирд┐рдореНрди рдкреГрд╖реНрда рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред

рдирдорд╕реНрддреЗ рджреБрдирд┐рдпрд╛
рдЗрд╕ рддрд░рд╣ Swoft рдирд┐рдпрдВрддреНрд░рдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (рдПрдкреНрд▓рд┐рдХреЗрд╢рди / Http / рдирд┐рдпрдВрддреНрд░рдХ) рдХреЗ рддрд╣рдд рдПрдХ рдирдпрд╛ HelloWorldController.php
рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБред
<?php declare(strict_types=1); namespace App\Http\Controller; use Swoft\Http\Server\Annotation\Mapping\Controller; use Swoft\Http\Server\Annotation\Mapping\RequestMapping; class HelloWorldController { public function index(): string { return 'Hello World !'; } }
рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ рд░рд╛рдЙрдЯрд░ рдХреЛ рдмрд╛рдж рдХреЗ рд▓реЗрдЦ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд╕реЗрд╡рд╛ рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдХреНрд╕реЗрд╕ [ http://127.0.0.1:18306/hello-world/index ] ( http://127.0.0.1:18306/ рд╣реИрд▓реЛ - рд╡рд░реНрд▓реНрдб / рдЗрдВрдбреЗрдХреНрд╕), рдЖрдкрдХреЛ рдирд┐рдореНрди рдкреГрд╖реНрда рдорд┐рд▓реЗрдЧрд╛ред

рдмреЗрдВрдЪ
рдмрд╕ Apache рдмреЗрдВрдЪ рдЯреВрд▓ рдХреЗ рддрд╣рдд Swoft рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:

Github
https://github.com/swoft-cloud/swoft