У меня есть файл Orders.php, и я хочу использовать в нем функции класса «Тест». Проблема в том, что файл класса находится в корневой папке проекта, но я не могу его использовать.
orders.php:
<?php
namespace AppBundle\Command;
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use Test;
protected function execute(InputInterface $input, OutputInterface $output)
{
ini_set('memory_limit', '4000M');
$test = new \Test(true);
exit;
}
И файл класса test.php — это:
<?php
namespace Test;
class Test
{
public function __construct($connect = null, $query = null)
{
if ($connect)
{
$this->connect();
}
if ($query)
{
$this->query($query);
}
}
}
Теперь файл класса test.php находится в корневой папке проекта. И файл orders.php находится в public_html \ project \ src \ AppBundle \ Command \ order.php
Как мне использовать тест класса, если он находится в корне проекта или в любом другом каталоге? Я пишу пространство имен с «/», поэтому оно должно ссылаться на корневой каталог, нет?
Вам нужно будет автозагрузка test.php
если вы хотите загрузить его снаружи уже определенной директивы PSR-0 / PSR-4. Вы можете автозагрузка отдельных файлов обновив свой composer.json
файл:
{
"autoload": {
"files": ["src/test.php"]
}
}
После обновления composer.json
вам нужно будет выполнить следующую команду:
$ composer dumpautoload
Обнаружил, что мне не нужно использовать пространство имен в моем файле класса. Также помог автозагрузчик. Спасибо.