Modern PHP

From Rixort Wiki
Revision as of 14:32, 18 April 2018 by Paul (talk | contribs)
Jump to navigation Jump to search

Composer

You should commit composer.json and composer.lock into version control.

composer install will install the exact versions specified in composer.lock. This ensures that all developers working on the same project are using the same versions. composer update will update all installed packages to their latest versions and update the composer.lock file.

Generators

Generators are similar to iterators that calculate their values on demand, thus potentially using fewer resources. They can be created using the yield keyword, e.g.:

function my_generator()
{
  yield 1;
  yield 2;
  yield 3;
}

Generators are forward-only iterators, i.e. you can only request the next value, not the previous, next but one etc. They are useful for iterating sequential data sets such as reading a file line by line (in order).

Autoloading

The original mechanism for autoloading was the magic function __autoload(). This is no longer recommended and is deprecated in PHP 7.x.

The successor to __autoload() is spl_autoload_register(). This in turn has been replaced by PSR-0, then PSR-4. Composer will generate a PSR-4 autoloader for you.

Built-in web server

PHP comes with a built-in web server which is useful for development purposes, although it should never be used in production.

  • Configuration directives: -c config/php.ini

Useful dependencies

  • FastRoute
  • aura/router or league/route
  • aura/filter, respect/validation, symfony/validator
  • mbstring extension, provides mb_ functions such as mb_strlen

Links