thipages/pca-helper

Helper for PHP-CRUD-API configuration

v0.5.0 2021-06-20 10:42 UTC

This package is auto-updated.

Last update: 2024-04-20 17:09:41 UTC


README

PCA-HELPER tries to help to setup the configuration file used in PHP-CRUD-API

  • simplifying the database configuration
  • simplifying the dbAuth configuration
  • providing some middlewares tools (upload, autoFK),
  • writing automatically middlewares configuration property

Drawback : it adds some workload on the server compared to the native/original single file api.php. May be a cli tool may be a good comprise one day...

Installation

composer require thipages/pca-helper

add an api.php file referencing

  • either require('./api.include.php');for a single file usage from PHP-CRUD-API
  • or the library with autoload.php and composer require mevdschee/php-crud-api

Usage

Simple static call Helper::echo(...$config);

$config being a list of

  • either regular associative arrays (as defined in PHP-CRUD-API)
[
    'debug'=>true,
    'authorization.tableHandler' => function ($operation, $tableName) {
            return $tableName != 'user';
     }
]
  • or static methods of predefined class (returning an associative array...)
    Base::setup_connection(
        $database, $username, $password,
        $driver = 'mysql',$address='localhost',
        $port = null
    )
    Base::setup_SQLite($filePath)
    Base::setup_cache($cacheType = 'NoCache', $cacheTime = 10, $cachePath = null)
    BdAuth::setup(
        $sessionName,
        $passwordLength=12, $mode='required',
        $usersTable='user',$usernameColumn='username',$passwordColumn='password', 
        $registerUser='1')
    // Note that dbAuth has a strong default setup
  • or static handlers whose name method match the configuration key (by convention)
[
    'multiTenancy.handler'=>AutoFK::multiTenancy_handler(
        $relations,
        $user=['user','id','user_id']
     )     
]
[
    'customzation.beforeHandler'=>Upload::customzation_beforeHandler (
        $table, $field, $filesPath
    )     
]

Example

Helper::echo(
[
    Base::setup_SQLite($dbPath),
    Base::setup_cache(),
    DbAuth::setup('pca_helper',8),
    [
        'authorization.tableHandler' => function ($operation, $tableName) {
            return $tableName != 'user';
        },
        'multiTenancy.handler' => AutoFK::multiTenancy_handler(['note'=>'user_id']),
        'customzation.beforeHandler'=>function($operation, $tableName, $request, $environment) {
            $request= Upload::customzation_beforeHandler ($table, $field, $filesPath)(func_get_args());
            // ...
            return $request;
        },
        Base::debug=>true
    ]
]);