PHP code example of oihana / php-system

1. Go to this page and download the library: Download oihana/php-system library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

oihana / php-system example snippets




use function oihana\init\{ initDefaultTimezone, initMemoryLimit, initErrors, initConfig, initDefinitions, initContainer };
use oihana\logging\Logger;

// Bootstrap
initDefaultTimezone('UTC');
initMemoryLimit('256M');
initErrors([
    'display_errors' => '1',
    'error_log'      => 'var/logs/php_errors.log',
], __DIR__);

// Load config and build the DI container
$config       = initConfig(__DIR__ . '/config', 'app.toml');
$definitions  = initDefinitions(__DIR__ . '/definitions');
$container    = initContainer($definitions, ['config' => $config]);

// Logger
$logger = new Logger(__DIR__ . '/var/logs', Logger::DEBUG);
$logger->info('Application started');

use function oihana\init\{ initDefaultTimezone, initMemoryLimit, initErrors, setIniIfExists };

initDefaultTimezone('UTC');
initMemoryLimit('512M');
initErrors([
    'display_errors'         => '1',
    'display_startup_errors' => '1',
    'error_log'              => 'var/logs/php_errors.log',
], __DIR__);

// Safe ini_set wrapper (no-op on empty values)
setIniIfExists('upload_max_filesize', '64M');

use function oihana\init\{ initConfig, initDefinitions, initContainer };

$config      = initConfig(__DIR__ . '/config', 'app.toml');
$definitions = initDefinitions(__DIR__ . '/definitions');
$container   = initContainer($definitions, ['config' => $config]);

use oihana\logging\Logger;

$logger = new Logger(__DIR__ . '/var/logs', Logger::INFO);
$logger->info('App started');
$logger->error('An error occurred: {error}', ['error' => 'boom']);

// Optional helpers
$logger->clear();             // remove all log files in log directory
$files = $logger->getLogFiles();

use oihana\http\{ HttpMethod, HttpHeaders, HttpParamStrategy };

$method  = HttpMethod::POST;
$header  = HttpHeaders::CONTENT_TYPE;
$strategy = HttpParamStrategy::BOTH; // read from body and query

use oihana\date\TimeInterval;

$d = new TimeInterval('1h 2m 5s');
echo $d->humanize();   // 1h 2m 5s
echo $d->formatted();  // 1:02:05
echo $d->toSeconds();  // 3725
bash
composer run test ./tests/oihana/date/TimeIntervalTest.php