phpcs - класс должен быть в пространстве имён хотя бы одного уровня - как исправить?

Я использую ларавель 4.2.

Допустим, есть такой класс:

class BShopsController extends ShopsController

Чтобы исправить это, я пытаюсь использовать пространство имен, скажем так:

namespace app\controllers;

а потом не находит ShopsController

поэтому я добавляю

use \ShopsController;

Затем я получаю сообщение об ошибке:

Класс BShopsController не существует

Какое пространство имен я должен использовать в первую очередь, чтобы ничего не сломать?

Изменить:

BShopsController и ShopsController находятся в папке Shops


person Dariux    schedule 09.12.2014    source источник


Ответы (1)


Поскольку ваши файлы находятся в папке «Магазины», и я считаю, что папка «Магазины» находится внутри папки приложения, вы должны именовать свой класс следующим образом.

<?php namespace Shops;

class BShopsController extends ShopsController{}

Сходным образом,

<?php namespace Shops;

    class ShopsController{}
person Shhetri    schedule 09.12.2014
comment
Папка Shops находится в папке контроллеров. Не упомянул об этом, потому что файлы были контроллерами, поэтому я предположил, что вы уже знаете. Итак, как это изменить это? Пространство имен должно быть контроллерами/магазинами? Почему не приложения/контроллеры/магазины, например? - person Dariux; 09.12.2014
comment
Извините, это моя ошибка. Я смешал контроллеры с репозиторием. В любом случае, решение остается прежним. Используйте пространство имен Shops для файлов в папке Shops. - person Shhetri; 09.12.2014
comment
@Darius.V, хотя решение работает, я знаю, что здесь я мало чем помогу. Взгляните на это, пространства имен. Вам будет ясно о пространствах имен. - person Shhetri; 09.12.2014
comment
это сработало. Но потом я пришел к файлу, который находится в папке контроллеров. Использование пространства имен только с обратной косой чертой невозможно. А затем нашел еще один вопрос stackoverflow.com/questions/14714848/ — предлагает пространство имен, начиная с пространства имен папки приложения App\Models; Я так понимаю, должно быть лучше? - person Dariux; 08.01.2015
comment
да... вы можете начать с App. при создании пространства имен файла используйте соглашение о структуре папок. Будет легко дать пространство имен. - person Shhetri; 09.01.2015