Как правильно использовать namespace автозагрузку классов php?

Сложно мне, потому что за пример взял статью с хабра habrahabr.ru/post/150267 - в которой не используется автозагрузка, а в других статьях автозагрузка используется при другой структуре файлов. Разбираюсь и с тем и с другим, очень сложно.

<?php
class Autoloader
{ 
 
    public static $loader;

    public static function init()
    {
        if (self::$loader == NULL)
            self::$loader = new self();

        return self::$loader;
    }

    public function __construct()
    {
        spl_autoload_register(array($this, 'autoload'));
    }

    public function autoload($className)
    { 
        //echo $className."\n";   
                    
        $path = str_replace('\\', DS, $className); 
         require_once(PATH_APP.DS.$path.'.class');
                              
    }
}


Там такая структура проекта

fbe78972d8669ee4cadf547e35b383dc.pngfb79d5b3be814853c9e36d62e4817efc.png28e4a4a1d2a70c4a54a5df4a93ed5459.png

Я решил попробовать namespace в классах, но боюсь запутаться

<?
namespace core;

class View
{

<?  
namespace contr;

class contr_index extends \core\Controller
{
   
    function __construct()
    {                             
     $this->model = new \model\model_index();
     $this->view  = new \view\view_index();
    }
    
    function action_index()
    {
     $data = $this->model->get_data();    
     $this->view->generate('view_index.php', 'template_view.php', $data);
    }
}

<?
namespace model;

class model_index extends \core\Model
{
 
    public function get_data()


Я всё правильно делаю?
  • Вопрос задан
  • 8409 просмотров
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 1
Хоть вопрос и решён, но всё же:
Запутался с Autoloader & NAMESPACE <- тут решение.
А здесь на русском про PSR и т.п.:
getjump.github.io/ru-php-the-right-way
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы