Например, давайте предположим, что я использую доступную онлайн библиотеку под названием «альфа». Эта библиотека имеет файл с именем Authenticate.php, который мне нужно включить в каждый файл, чтобы использовать библиотеку.
Например:
for login.php
<?php
include 'Authenticate.php';
include 'Everything.php';
sac::forceAuthentication();
<html>
<head>
<title>Example</title>
</head>
<body>
<h1>Authentication Succeeded</h1>
</body></html>
?>
for logout.php
<?php
include 'Authenticate.php';
include 'Everything.php';
sac::logout();
<html>
<head>
<title>Example</title>
</head>
<body>
<h1>Logout Successful</h1>
</body></html>
?>
Как видите, мне нужно включить Authenticate.php во все мои файлы, чтобы использовать функциональные возможности Authenticate.php.
Есть ли способ, которым я могу избежать этого, включив Authenticate.php в файл Everything.php?
Чтобы избежать этого, я думал о следующем возможном решении, дайте мне знать, если это правильный способ сделать это.
Я планирую включить следующие функции Authenticate.php в Everything.php, выполнив следующие действия
class Everything {
public function Login(){
include_once('Authenticate.php');
sac::forceAuthentication();
}
public function logout(){
include_once('Authenticate.php');
sac::logout();
}
// Some other functions of everything.php
}
Примечание: Authenticate.php имеет много других функций, которые мне не нужны, я хочу использовать только выбранные функции и включить в Everything.php
Заранее спасибо.
Ввод include
внутри функции, вероятно, не очень хорошая идея. Если он назначает переменные, которые должны быть глобальными, они будут только в области действия этой функции, а не глобальными.
Вы можете создать файл, который включает в себя как Authenticate.php
а также Everything.php
, Назови это AuthEverything.php
и он будет содержать:
include_once('Authenticate.php');
include_once('Everything.php');
Затем положить include_once('AuthEverything.php')
в вашем login.php
а также logout.php
,
Других решений пока нет …