Start project PHP Back.
50% routes.
This commit is contained in:
38
src/Helpers/AutoLoader.php
Normal file
38
src/Helpers/AutoLoader.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
namespace App\Helpers;
|
||||
|
||||
/**
|
||||
* Classe utilitaire contenant des méthodes pour charger automatiquement les classes.
|
||||
*/
|
||||
class AutoLoader {
|
||||
|
||||
/**
|
||||
* Namespace principal de l'application.
|
||||
*/
|
||||
public const string PRIMARY_NAMESPACE = 'App\\';
|
||||
|
||||
/**
|
||||
* Permet d'enregistrer la méthode _autoload_ en tant que méthode pour charger des classes.
|
||||
* @return void
|
||||
*/
|
||||
public static function register(): void {
|
||||
spl_autoload_register( [ self::class, '_autoload_' ] );
|
||||
}
|
||||
|
||||
/**
|
||||
* Permet de charger une classe.
|
||||
*
|
||||
* @param string $className
|
||||
* @return void
|
||||
*/
|
||||
public static function _autoload_( string $className ): void {
|
||||
if( !str_starts_with( $className, self::PRIMARY_NAMESPACE ) ) // Ne s'occupe que des classes à charger de cette application.
|
||||
return;
|
||||
|
||||
$className = str_replace( self::PRIMARY_NAMESPACE, '', $className );
|
||||
$className = str_replace( '\\', '/', $className );
|
||||
|
||||
require APP_ROOT . 'src/' . $className . '.php';
|
||||
}
|
||||
|
||||
}
|
||||
1
src/Helpers/CacheManager.php
Normal file
1
src/Helpers/CacheManager.php
Normal file
@@ -0,0 +1 @@
|
||||
<?php
|
||||
42
src/Helpers/ConfigFactory.php
Normal file
42
src/Helpers/ConfigFactory.php
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace App\Helpers;
|
||||
|
||||
use App\Exceptions\ConfigFailedLoadingException;
|
||||
|
||||
/**
|
||||
* Classe outillage qui permet de charger les fichiers de configuration.
|
||||
*/
|
||||
class ConfigFactory {
|
||||
|
||||
/**
|
||||
* Chemin relatif à partir de APP_ROOT du dossier contenant les fichiers de configuration.
|
||||
*
|
||||
* @see APP_ROOT
|
||||
*/
|
||||
const string CONFIG_RELATIVE_FOLDER = "config/";
|
||||
|
||||
/**
|
||||
* Permet de charger un fichier de configuration.
|
||||
*
|
||||
* @param string $fileName Le nom du fichier de configuration, avec ou sans l'extension .php.
|
||||
* @return array
|
||||
*
|
||||
* @throws ConfigFailedLoadingException
|
||||
*/
|
||||
public static function loadConfigFile( string $fileName ): array {
|
||||
if( !str_ends_with( $fileName, ".php" ) ) {
|
||||
$fileName .= ".php";
|
||||
}
|
||||
|
||||
$filePath = APP_ROOT . self::CONFIG_RELATIVE_FOLDER . $fileName;
|
||||
|
||||
if( !file_exists( $filePath ) ){
|
||||
throw new ConfigFailedLoadingException( "Config file '$fileName' does not exist" );
|
||||
}
|
||||
|
||||
$configArray = require $filePath;
|
||||
return $configArray;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user