|
@@ -1,10 +1,20 @@
|
|
|
-# PHP Version
|
|
|
+# PHP Frameworks
|
|
|
+
|
|
|
+The information below contains information specific to PHP.
|
|
|
+For further guidance, review the
|
|
|
+[documentation](http://frameworkbenchmarks.readthedocs.org/en/latest/).
|
|
|
+
|
|
|
+## Infrastructre Software Versions
|
|
|
+
|
|
|
+### PHP Version
|
|
|
|
|
|
[Currently this toolset runs PHP 5.5.17](https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/toolset/setup/linux/languages/php.sh). At the moment all PHP-based frameworks use the
|
|
|
same PHP version, but we are open to receiving a pull request
|
|
|
that enables supporting multiple versions.
|
|
|
|
|
|
-# PHP Acceleration and Caching
|
|
|
+## Adding New PHP-based Frameworks
|
|
|
+
|
|
|
+### PHP Acceleration and Caching
|
|
|
|
|
|
Caching the output of the PHP bytecode compiler is expressly
|
|
|
allowed by this benchmark. As we use PHP 5.5, which comes
|
|
@@ -43,7 +53,7 @@ easier to use systems such as APCu.
|
|
|
|
|
|
Ask if you are not certain.
|
|
|
|
|
|
-# Adding New PHP-based Frameworks
|
|
|
+## Install.sh and Setup.sh Files
|
|
|
|
|
|
Most PHP frameworks use `fw_depends php nginx composer` in their `install.sh` file,
|
|
|
which installs PHP, Nginx, and Composer automatically. They then create a `setup.sh`
|
|
@@ -75,7 +85,7 @@ When using `php`, `php-fpm`, or other binaries, always use the full path
|
|
|
to the binary, e.g. instead of `php <command>`,
|
|
|
use `/home/foo/FrameworkBenchmarks/installs/php-5.5.17/bin/php <your command>`.
|
|
|
|
|
|
-# Dependency Management Using Composer
|
|
|
+### Dependency Management Using Composer
|
|
|
|
|
|
Many PHP apps use [Composer](https://getcomposer.org/) for dependency management,
|
|
|
which greatly simplifies downloading the framework, loading the framework, and
|
|
@@ -90,7 +100,7 @@ The lock file is a fully-defined file generated by composer 1) reading your JSON
|
|
|
dependencies 3) downloading a lot of data from Github. Without this lock file, composer takes 2-3x
|
|
|
longer to run, and it can even halt and require user input
|
|
|
|
|
|
-## Setting up Composer
|
|
|
+#### Setting up Composer
|
|
|
|
|
|
Add a `composer.json` file to your framework's root folder, e.g. `php-fuel/composer.json`.
|
|
|
Ensure your `install.sh` lists composer as a dependency, and uses `composer.phar` to
|
|
@@ -109,7 +119,7 @@ e.g. `php-fuel/vendor` that contains all dependencies. Update your PHP scripts
|
|
|
to either directly reference files inside of vendor, or use the `vendor/autoload.php`
|
|
|
file.
|
|
|
|
|
|
-## Generating composer.lock file
|
|
|
+#### Generating composer.lock file
|
|
|
|
|
|
Composer uses Github *a lot*, enough so that it is common for it to exceed the
|
|
|
API limit and cause infinite hangs or installation failures. To avoid this, it
|
|
@@ -145,7 +155,7 @@ queries as they are shown. Use these steps
|
|
|
# Add the lock file to this repository
|
|
|
git add -f composer.lock
|
|
|
|
|
|
-## Updating Composer setup
|
|
|
+#### Updating Composer setup
|
|
|
|
|
|
If you update `composer.json`, you need to regenerate the lock
|
|
|
file. If you forget to do this, you will see this error message
|
|
@@ -153,8 +163,20 @@ when running:
|
|
|
|
|
|
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.
|
|
|
|
|
|
-# Debugging PHP Frameworks
|
|
|
+### Debugging PHP Frameworks
|
|
|
|
|
|
The first stop for HTTP 500 errors is to enable stack traces.
|
|
|
Update `config/php-fpm.conf` to include `php_flag[display_errors] = on`.
|
|
|
If you don't use php-fpm, update the `config/php.ini`
|
|
|
+
|
|
|
+## Get Help
|
|
|
+
|
|
|
+### PHP Experts
|
|
|
+
|
|
|
+_There aren't any PHP experts listed, yet. If you're an expert,
|
|
|
+add yourself!_
|
|
|
+
|
|
|
+### Resources & Interesting Links
|
|
|
+
|
|
|
+_If you find some interesting links related to the PHP tests,
|
|
|
+add them here._
|