Blink: A High-Performance PHP Framework
You've likely heard of Lumen, Silex, and Slim. Now, meet Blink, a new PHP framework designed for high-performance applications demanding significant server resources. This article explores Blink's capabilities and demonstrates its use through a sample "Notejam" application.
Blink leverages the Swoole PHP extension to achieve its performance goals. Let's dive into the details.
Key Features:
Swoole Extension Installation:
Blink's performance relies on the Swoole extension. This guide uses PEAR on Ubuntu 14.04 with a LAMP setup (using Vaprobash; see the project's Vagrantfile for details). (Note: Swoole's current incompatibility with PHP 7 is a factor in this setup choice.)
sudo apt-get update sudo apt-get install php-pear php5-dev libcurl3-openssl-dev sudo pecl install swoole
After installation, remember to add extension=swoole.so
to your php.ini
file. Verify the extension's loading with:
php -m | grep 'swoole'
(Current Swoole version: 1.7.22-alpha, incompatible with PHP 7; future versions aim to address this.)
Installing Blink:
Use Composer:
composer create-project --prefer-dist blink/seed
Start the server:
php blink server serve
Access the application at http://localhost:7788
(or adjust the port as described below).
Configuration:
While Blink doesn't offer command-line port specification, you can modify the port in src/config/server.php
:
<?php return [ 'class' => '\blink\server\SwServer', 'bootstrap' => require __DIR__ . '/../bootstrap.php', 'host' => '0.0.0.0', 'port' => 8080, ];
Remember to restart the server after making changes. The config
directory also houses application and service configurations.
Building the Notejam App:
The Notejam app (available on Github) includes:
Integrating Twig (Templating Engine):
Blink doesn't include a default templating engine; we'll use Twig. Modify src/bootstrap.php
and add src/bindings.php
:
sudo apt-get update sudo apt-get install php-pear php5-dev libcurl3-openssl-dev sudo pecl install swoole
php -m | grep 'swoole'
Integrating Eloquent (Database Management):
For database interaction (users, notes, pads), we'll use Eloquent. Install via Composer:
composer create-project --prefer-dist blink/seed
Then, configure Eloquent in src/bindings.php
:
php blink server serve
(Database migrations are handled via src/console/MigrateCommand.php
and src/config/app.php
.)
Routing, Controllers, and Views:
Routes are defined in src/http/routes.php
. Controllers reside in src/http/controllers
. Views use Twig templates. The article provides detailed examples of these components for the Notejam app's functionality (sign-up, sign-in, settings, note management). Middleware is used for authentication and authorization.
Sessions and Cookies:
Blink doesn't automatically handle PHP sessions; manual management (using the request object) is necessary.
Conclusion:
Blink, while still in early development, offers a compelling high-performance alternative. The community is encouraged to contribute to its growth and improvement.
The provided FAQs are already comprehensive and well-structured. No further modifications are needed.
The above is the detailed content of Can PHP Be Even Faster? Light-Speed with the Blink Framework. For more information, please follow other related articles on the PHP Chinese website!