This post covers the Extensions section of the PHP Basics chapter when studying for the Zend PHP 7 Certification.
The most common way for PHP extensions to be loaded is through the php.ini
configuration file.
Usually on UNIX based servers, there may be more than one php.ini
files on a server. Therefore, to find out the configuration file that’s actually being used, you can use PHP’s phpinfo()
function.
This function will show a Configuration File (php.ini) Path
and Loaded Configuration File
value, where you’ll be able to see the configuration file used.
Extensions are loaded into php.ini
using the extension
line.
// php.ini
extension=apc.so
On UNIX systems, extension libraries usually contain a .so
extension.
extension=msql.so
On Windows systems, it is usually a .dll
extension.
extension=msql.dll
PHP will look for the extensions using a extension_dir
directive, which is a directive set in php.ini
. This declares the directory that the extensions are located in.
extension_dir = "/some/extensions/folder"
Depending on how PHP is being used on the web server will depend on if you need to restart any services after modifications made to php.ini
.
Note that as well as viewing extensions using phpinfo()
, you can also pass in an INFO_MODULES
parameter:
phpinfo(INFO_MODULES);
There is also a get_loaded_extensions()
function.
PECL is a repository for PHP Extensions, providing a directory of all known extensions and hosting facilities for downloading and development of PHP extensions.
The packaging and distribution system used by PECL is shared with its sister, PEAR.
Extensions include APC, Solr and Mcrypt.
There are a set of php extensions that are part of the PHP core and cannot be left out of a PHP binary with compilation options. These include but not limited to:
When choosing names for any code that creates symbols in the global namespace, it is important to take into account the following guidelines to prevent future versions of PHP conflicting with your code.
Function names in PHP use underscores between words, while class names use both the camelCase and PascalCase rules.
PHP reserves all symbols starting with __
as magical. It is recommended that you do not create symbols starting with __
in PHP unless you want to use existing magical functionality, such as __get()
and __isset()
.
View the other sections:
Note: This article is based on PHP version 7.0.