не может использовать форму в symfony2.4

это, наверное, опечатка, но я этого не вижу ... это сводит меня с ума!

моя структура:

Пакет: / Symfony24 / src / NRtworks / ChartOfAccountsBundle

Моя форма: /Symfony24/src/NRtworks/ChartOfAccountsBundle/Form/Account_fastedit_form.php

Контроллер такой:

<?php

namespace NRtworks\ChartOfAccountsBundle\Controller;
//form loading
use NRtworks\ChartOfAccountsBundle\Form\Account_fastedit_form;
use NRtworks\SubscriptionBundle\Form\NewCustomer;

class ChartOfAccountsController extends Controller
{
   public function indexAction()
   {
       new NewCustomer();
       new Account_fastedit_form();
   }

}

?>

мой класс формы в Form / Account_fastedit_form.php

<?php

namespace NRtworks\ChartOfAccountsBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;

class Account_fastedit_form extends AbstractType
{
    //whatever
}
?>

тогда я получаю:

ClassNotFoundException: Attempted to load class "Account_fastedit_form" from namespace "NRtworks\ChartOfAccountsBundle\Form" in /home/eagle1/www/Symfony24/src/NRtworks/ChartOfAccountsBundle/Controller/ChartOfAccountsController.php line 72. Do you need to "use" it from another namespace?

Я не нахожу своей ошибки. ps: как вы можете видеть, я могу без проблем использовать свою форму NewCustomer в другом пакете, и структура аналогична ...


person Eagle1    schedule 09.04.2014    source источник
comment
Symfony может не понравиться тот факт, что вы смешиваете CamelCase и snake_case в своей схеме именования классов для NRtworks\ChartOfAccountsBundle\Form\Account_fastedit_form   -  person Darragh Enright    schedule 09.04.2014


Ответы (1)


Я протестировал это здесь и могу подтвердить, что Symfony не нравится тот факт, что у вас есть символы подчеркивания в имени вашего класса.

Измените класс на AccountFasteditForm, файл, содержащий класс, на AccountFasteditForm.php и обновите свои use операторы. Тогда это должно сработать.

ИЗМЕНИТЬ

Выискивая некоторую информацию об этом, я подозревал, что это связано с PSR-0. Вы найдете в документе:

Каждый символ _ в ИМЕНИ КЛАССА преобразуется в DIRECTORY_SEPARATOR. Символ _ не имеет особого значения в пространстве имен.

Подразумевая, что _ подходит для пространств имен, но нет для имен классов.

Я также нашел ссылку в документации Symfony о том, что имена классов должны быть верблюжьим регистром (снова подразумевая, что подчеркнутые пространства имен в порядке)

Вот аналогичный вопрос SO

person Darragh Enright    schedule 09.04.2014