Почему я должен поддерживать каждое ключевое слово "use" словом "require"?

Пример:

namespace MyApp\Api;

use Mautic\Auth\AuthInterface;
use Psr\Log\LoggerAwareInterface;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;

/**
* Base API class
*/

class Api implements LoggerAwareInterface
{
//do Api stuff here

Если я загружаю это на свой хостинг, я получаю исключение "Класс не найден". Но я делаю простое обновление:

namespace MyApp\Api;

use Mautic\Auth\AuthInterface;
use Psr\Log\LoggerAwareInterface;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;

/**
* Base API class
*/
require_once('Psr/Log/LoggerAwareInterface.php');
require_once('Psr/Log/LoggerInterface.php');
require_once('Psr/Log/NullLogger.php');
class Api implements LoggerAwareInterface
{
 //do stuff

Добавление ключевых слов require_once решает проблему, и кажется, что все можно использовать.

Теперь некоторые пакеты, которые я использую в своих проектах PHP, сделаны кем-то другим. Поэтому я ненавижу идею об изменении файлов кого-то еще. Теперь, что я должен проверить или изменить на моем хостинге?

Основная информация о моем хостинге:

 -- Webserver Configuration

 PHP Version:              5.3.29
 MySQL Version:            5.5.5
 Webserver Info:           Apache

Что мне нужно изменить на моем хостинге, чтобы файлы работали над собой без необходимости добавлять require ключевые слова?

РЕДАКТИРОВАТЬ Я все еще немного новичок в программировании на PHP, поэтому я использую только Notepad++ для разработки и обычный инструмент FTP для загрузки файлов на мой хостинг

0 ответов

Другие вопросы по тегам