swoole این امکان رو به برنامه نویسان پی اچ پی میده که کدی با سرعت اجرایی و مقیاس پذیری بالا تولبد کنند . با نصب این کتابخانه شما
concurrent TCP, UDP, Unix socket, HTTP, Websocket را با زبان پی اچ پی در اختیار دارید بدون نیاز به دانش non-blocking I/O programming و low-level Linux kernel
بعضی از برنامه نویسان اعتقاد دارند که swoole دوباره زبان php را تعریف کرد.روند هر درخواست در نرم افزار نوشته شده با پی اچ پی به صورت request می باشد.و زبان پی اچ مانند بعضی زبان های دیگر از multi thread و درخواست غیر همزمان پشتیبانی نمی کنه.که البته خود نبود این امکان , از دید برنامه نویشان پی اچ پی مزیت می باشد ..چون هر درخواست به صورت یک درخواست هست و حال برای پردازش همزمان می توان در سطح سرور این مورد را پشتیانی کرد که باعث مبشه دیباگ پروژه نوشته شده به زبان پی اچ پی ساده تر باشه و تو scale بالا به مشکل نخوره.چون برای پردازش بیشتر در سطح سرور این نیاز handle می شه.
با این حال کتابخانه swoole یا بسته های زیادی که به صورت داخلی همراه خود دارد این نیاز را نیز به صورت خیلی خوب برطرف می کند که دقیقا مناسب برای مرحله production در محصول می باشد.
برخی از مزیت های Swoole
- Event-Driven, Asynchronous Programming For PHP
- Async TCP / UDP / HTTP / Websocket / HTTP2 Client/Server Side API
- IPv4 / IPv6 / Unixsocket / TCP/ UDP And SSL / TLS Support
موارد استفاده کتابخانه swoole در php برای پروژه های :
- Mobile API Server
- Internet Of Things
- Micro Services
- Web Applications
- Gaming Servers
- Live Chat Systems
کتابخانه swoole به زبان C و مخصوص زبان پی اج پی نوشته شده است.
swoole با زبان سنتی پی اچ پی متفاوت بوده و در سطح CLI اجرا می شود.
استفاده از swoole در فریم ورک محبوب laravel در پی اچ پی هم باعث میشه performance بسیار بهتری بدست بیارید.
در lifecycle در زبان پی اچ هر زمان که شما کد پی اچ پی رو اجرا می کنید.پی اچ پی module های خودش رو intialize می کنه zend engine رو اجرا می کنه و اسکریپت پی اچ پی به OPcode کامپایل میشه که برای اجرا در اختیار zend engine قرار بگیره.
محیط اجرایی که توسط zend engine تولید میشه بعد از اتمام هر درخواست از بین میره.در swoole همه اسکریپت ها بعد از اجرا در حافظه باقی میمونه برای درخواست های بعدی.
با نصب پکیج swooletw/laravel-swoole در لاراول می توانید امکانات swoole رو در اختیار داشته باشید و بهبود عملکری تا 30 برابر رو به دست بیارید.
برای نصب در لاراول
composer require swooletw/laravel-swoole
این پکیج نیاز به افرونه swoole داره که باید از نصب آن مطمین بود.
pecl install swoole
بعد از نصب نیاز هست که فایل php.ini ادیت بشه و extension=swoole.so به آخر آن اضافه بشه
php -i | grep php.ini # check the php.ini file location
sudo echo "extension=swoole.so" > php.ini # add the extension=swoole.so to the end of php.ini
php -m | grep swoole # check if the swoole extension has been enabled
نکته : swoole در حال حاظر تنها از سیستم عامل های linux و OSX پشتیبانی می کنه.
سپس این service provider را در config/app.php اضافه کنید