Symfony2 использование класса

У меня есть файл 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

Как мне использовать тест класса, если он находится в корне проекта или в любом другом каталоге? Я пишу пространство имен с "/", поэтому оно должно ссылаться на корневой каталог, нет?

2 ответа

Решение

Вам нужно будет автозагрузка test.php если вы хотите загрузить его снаружи уже определенной директивы PSR-0/PSR-4. Вы можете автоматически загружать отдельные файлы, обновляя composer.json файл:

{
    "autoload": {
        "files": ["src/test.php"]
    }
}

После обновления composer.jsonвам нужно будет выполнить следующую команду:

$ composer dumpautoload

Обнаружил, что мне не нужно использовать пространство имен в моем файле класса. Также помог автозагрузчик. Спасибо.

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