Если вы поместите папку своих модулей «рядом», а не в папку приложения, значит ваше пространство имен неправильное.
Таким образом, вы получите что-то вроде
app/
Modules/ ==> can be modules or Modules but must be set in autoload with the same case
Proef/
Controllers/
Proef.php
ПРИМЕЧАНИЕ: модули могут быть Модули или модули, но соответствующая запись в автозагрузке должна совпадать.
Для модулей 'Модули' => ROOTPATH. 'modules'
Для модулей 'Modules' => ROOTPATH. «Модули»
По результатам моего ограниченного тестирования выясняется, что имена других папок должны быть в верхнем регистре с 1-й буквой. Это под Apache на Linux.
давайте использовать Модули для имени папки, поэтому в Автозагрузка. php у нас будет ...
$psr4 = [
'App' => APPPATH, // To ensure filters, etc still found,
APP_NAMESPACE => APPPATH, // For custom namespace
'Config' => APPPATH . 'Config',
'Modules' => ROOTPATH . 'Modules'
];
Итак, ваш Proef Controller - Proef. php ... Обратите внимание на используемое пространство имен.
<?php
namespace Modules\Proef\Controllers;
use App\Controllers\BaseController;
class Proef extends BaseController {
public function index() {
echo 'Hello - I am the <strong>'. __CLASS__ . '</strong> Class';
}
}
Чтобы сделать его доступным через URL, вы можете установить маршруты ( Маршруты. php) в ... (простая версия)
$routes->get('/proef', '\Modules\Proef\Controllers\Proef::index');
Чтобы сделать его доступным для других контроллеров ... (Я позаимствовал Домой. php для этого)
<?php namespace App\Controllers;
use \Modules\Proef\Controllers\Proef;
class Home extends BaseController
{
public function index()
{
$mProef = new Proef();
$mProef->index();
return view('welcome_message');
}
//--------------------------------------------------------------------
}
В вашем URL - / proef приведет к тому, что просто сообщение / home приведет к сообщению класса и странице приветствия.
Надеюсь, это поможет вам понять это. Это очень весело:)
В стороне:
Вы можете поместить свою папку модулей в любом месте. Я помещаю свой в app / для ole раз ради, который устраняет необходимость добавлять запись в Autoload. php, поскольку они попадают в app /, который уже определен.
Пространство имен и оператор use должны быть изменилось соответствующим образом.