Кохана рамки.Кохана класс вопрос - PullRequest
0 голосов
/ 27 декабря 2010

Я смотрю на фреймворк Kohana и пытаюсь пройти код, чтобы лучше понять, как работает фреймворк.

Итак - из index.php мы загружаем:

require SYSPATH.'base'.EXT;
require SYSPATH.'classes/kohana/core'.EXT;
require APPPATH.'bootstrap'.EXT;

В ядре.php файл мы делаем следующим образом:

public static $environment = Kohana::DEVELOPMENT;

На что мы обращаемся, вызывая Kohana :: DEVELOPMENT?Из того, что я понимаю - используя :: мы должны получить статическую константу из класса kohana.- право?Но в этот момент в коде нет загруженного класса Kohana, который я мог бы найти.Итак, кто-то может объяснить, что здесь происходит?Спасибо

РАЗРЕШЕНИЕ:

Неважно.Я не следовал за кодом достаточно далеко.Класс Kohana расширяет класс Kohana_Core.ттт.Жаль, что невозможно удалить глупые вопросы из StackOverflow.

Ответы [ 2 ]

2 голосов
/ 27 декабря 2010

Kohana (как и любой другой фреймворк) использует механизм "автозагрузки".Это позволяет вам использовать классы, не включая файлы, в которых они определены вручную.Автозагрузчик автоматически включит / потребует файл, в котором находится класс Kohana.

Так что, когда вы наберете Kohana::DEVELOPMENT или new Kohana ();, автозагрузчик загрузит файл с классом Kohana.,Вы должны знать, что это не работает волшебным образом.Вы должны написать свой собственный код автозагрузчика для своей платформы.

Подробнее об автоматической загрузке вы можете прочитать здесь .

0 голосов
/ 29 января 2015

Для получения дополнительной информации перейдите по этой ссылке: spl_autoload register .Kohana использует собственную реализацию, которую можно установить в файле bootstrap.php.Вы можете найти эту функцию в файле Core.php.

/**
 * Enable the Kohana auto-loader.
 *
 * @link http://kohanaframework.org/guide/using.autoloading
 * @link http://www.php.net/manual/function.spl-autoload-register
 */
spl_autoload_register(array('Kohana', 'auto_load'));
...