PECL and PEAR

Updated: 03 April 2024

PECL
https://pecl.php.net

The PHP Extension Community Library

PECL is a repository for PHP Extensions, providing a directory of all known extensions and hosting facilities for downloading and development of PHP extensions.

PEAR
https://pear.php.net

PHP Extension & Application Repository

PEAR is a framework and distribution system for reusable PHP components.

PHP code examples

Updated: 12 March 2024

Read contents of text file into a variable

$file_pointer = fopen('raw_bb_sample.txt', 'r') or die('Unable to open file!');
$sample = fread($file_pointer, filesize('raw_bb_sample.txt'));
fclose($file_pointer);
var_dump($sample);

Symfony testing

Updated: 04 April 2024

Testing (Symfony Docs)

Unit Tests

These tests ensure that individual units of source code (e.g. a single class or a method in a class) behave as intended. No different from writing standard PHPUnit unit tests.

Integration Tests

These tests test a combination of classes and commonly interact with Symfony’s service container. These tests do not yet cover the fully working application.

Application Tests

Verify the behavior of a complete application. They make HTTP requests (both real and simulated ones) and test that the response is as expected.

The output of the make:test command supplies a useful summary too

root@5b8333e33939:/var/www/html# bin/console make:test

 Which test type would you like?:
  [TestCase       ] basic PHPUnit tests
  [KernelTestCase ] basic tests that have access to Symfony services
  [WebTestCase    ] to run browser-like scenarios, but that do nott execute JavaScript code
  [ApiTestCase    ] to run API-oriented scenarios
  [PantherTestCase] to run e2e scenarios, using a real-browser or HTTP client and a real web server
 >

Composer tool itself

Updated: 17 January 2023

Install Composer phar

curl -sS https://getcomposer.org/installer | php

Circumvent php memory limit

php -d memory_limit=-1 composer.phar install

Up / downgrade Composer itself

composer self-update --help
composer self-update --1
composer self-update --2

Composer in Docker

Updated: 17 January 2023

Require a new project as a dependency

docker run --rm \
    -v $(pwd):/app \
    composer/composer:latest \
    require slim/slim "^3.0"

Install all dependencies in a project

docker run --rm --interactive --tty --volume $PWD:/app composer install