Оператор объявления пространства имен должен быть самым первым оператором в скрипте



Я только начал разрабатывать веб-приложение с Laravel, у меня есть проблема с использованием инъекции зависимостей. Он прекрасно работает без DI, но я хочу рефакторинговать код так, чтобы код не был тесно связан.



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



AccountController



<?php

namespace TabJutHttpControllers;

use IlluminateHttpRequest;
use IlluminateSupportFacadesInput;
use IlluminateSupportFacadesRedirect;
use IlluminateSupportFacadesValidator;

use View;

use TabJutHttpRequests;
use TabJutHttpControllersController;
use TabJutRepositoriesAccountRepository;

class AccountController extends Controller
{
/* error culprit, If I remove these the page not error */
protected $repository;

public function __construct(AccountRepository $repository)
{
$this->repository = $repository;
}
/* error culprit */

public function getLogin()
{
return View::make('account.login');
}

public function postLogin()
{
// Validates inputs.
$rules = array(
'username' => 'required',
'password' => 'required'
);
$validator = Validator::make(Input::all(), $rules);

// Redirects back to the form if the validator fails.
if ($validator->fails()) {
return Redirect::action('AccountController@getLogin')
->withErrors($validator)
->withInput(Input::except('password'));
}

$username = Input::get('username');
$password = Input::get('password');
$user = $repository.Authenticate($username, $password);
var_dump($user);
}
}


AccountRepository



<?php

namespace TabJutRepositories;

use DB;

class AccountRepository
{
public function Authenticate($username, $password)
{
$user = DB::table('users')
->where('is_active', '1')
->where('user_name', $username)
->where('password', $password)
->first();
return $user;
}
}


Дерево Папок



дерево папок



Сообщение Об Ошибке




FatalErrorException в AccountRepository.php строка 3: пространство имен
оператор declaration должен быть самым первым оператором в скрипте



in AccountRepository.php line 3
at FatalErrorException->__construct() in HandleExceptions.php line 127
at HandleExceptions->fatalExceptionFromError() in HandleExceptions.php line 112
at HandleExceptions->handleShutdown() in HandleExceptions.php line 0
at ComposerAutoloadincludeFile() in ClassLoader.php line 301



Пропустил ли я какую-либо важную конфигурацию, например настройку локатора служб, или просто невидимую ошибку кода?



Пожалуйста, помогите.

473   1  

1 ответ:

Это не имеет никакого отношения к инъекции зависимостей, основываясь на комментарии кузавинского к руководству, я воссоздал файл с помощью блокнота, и это решает проблему.

...и вы все равно получите " заявление объявления пространства имен должно быть самое первое утверждение в скрипте " фатальная ошибка, тогда вы, вероятно, используете Кодировка UTF-8 (что хорошо) с меткой порядка байтов, aka BOM (которая является плохой). Попробуйте конвертировать ваши файлы в "UTF-8 без BOM", и он должен быть в порядке. комментарий

Comments

    Ничего не найдено.