Функция spl_autoload_register () - удобный способ упорядочить вещи. Вы можете использовать его для загрузки в методы класса stati c в соответствии с требованиями, поместив его в файл 'init. php' , который требуется в начале каждого скрипта. Вот пример с классом Ha sh, который содержит методы stati c для создания солей и хэшей:
<?php
require_once('init.php');
$salt = Hash::salt(32);
$pw = Hash::make($_POST['password'], $salt);
?>
с классами init. php и /Hash.php файлы выглядят, например, следующим образом:
init. php:
<?php
spl_autoload_register(function($class) {
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/' . $class . '.php';
});
?>
Ха sh. php:
<?php
class Hash {
public static function make($string, $salt = '') {
return hash('sha256', $string . $salt);
}
public static function salt($length) {
return base64_encode(openssl_random_pseudo_bytes($length));
}
}
?>
Функция spl_autoload_register()
находит соответствующий класс на основе функции, которую вы предоставляете в качестве аргумента, когда она встречает экземпляр или использование метода stati c впервые в вашем коде.
Вы можете использовать это в своих интересах, группируя связанные функции как методы stati c. Например, мой каталог classes для конкретного проекта содержит:
Config.php Cookie.php DB.php
Err.php FormatError.php Hash.php
Input.php MismatchError.php Redirect.php
RequiredFieldError.php Session.php StringLengthError.php
Token.php UniqueItemError.php User.php
Validate.php
, который содержит, среди прочего, методы stati c, связанные друг с другом. Они загружаются только в том случае, если Php встречает свое имя где-либо в любом из моих сценариев, в которые включен файл init. php.