Managing scripts from Composer-installed packages is a routine part of maintaining PHP projects. Many packages include executable scripts, such as testing frameworks, code analyzers, or build utilities, which are placed...
PHP offers a flexible ecosystem where extensions expand the core functionality with additional features. In some cases, it is necessary to inspect the configuration details of a specific extension...
Keeping track of software licenses is an important part of maintaining any PHP project. When working with third-party packages, it's essential to understand the licensing terms to ensure compliance and...
PHP provides the socket_set_timeout function, which has historically been used to define read and write timeouts for stream resources such as network connections. This function is an alias of the...
PHP provides a built-in XML parser extension that allows developers to process XML documents using event-based callbacks. Before PHP 8.0, XML parser was represented as a resource, and the xml_parser_free...
PHP provides the Fileinfo extension for detecting MIME types and file information. Before PHP 8.1, the finfo_close function was used to release a file info resource created by finfo_open. Since...
PHP provides the ob_start function, which accepts an optional output buffer handler function. When provided, the handler function receives the buffered output just before it is sent to the client...
First-class callable syntax in PHP (introduced in PHP 8.1) allows us to create an anonymous function (Closure) using the expression CallableExpr(...). It is safer and more refactor-friendly than using string...
Since PHP 8.5, static closures can be used in constant expressions. This includes default values of parameters and properties, constants, and attribute parameters.
Suppose we have a function that takes...
PHP provides the Dom\HTMLDocument class for parsing HTML documents, allowing developers to navigate, modify, and extract information using familiar DOM methods. This makes it especially useful for tasks such as...