В прошлой статье мы рассказали о некоторых его основных структурах и перенесли их вобщая папкапод. Итак, сегодня давайте изучим его подробную структуру каталогов и улучшим ее.общая папкасодержимое внутри.
На сегодняшний день есть две основные части: первая — это улучшение общей папки, а вторая — подробная интерпретация структуры каталогов.
Заполните общую папку
Мы успешно перенесли файл index.php в нашу общую папку, поэтому теперь мы создаем несколько папок в этой папке для хранения некоторых статических файлов, необходимых в нашем проекте. Например: картинки, стили css, javascript и т. д. Согласно тому, что сказал Брат Берд в документе, мы можем создать следующие папки, а именно:
css : Используется для хранения некоторых файлов стилей, необходимых в нашем проекте.
img : Используется для хранения некоторых ресурсов изображений в нашем проекте, таких как логотипы, фоновые изображения и т. д.
js : Используется для хранения некоторых блоков кода js или сторонних библиотек в нашем проекте, таких как: jquery, vuejs и т. д.
Итак, давайте создадим их сейчас, в рамках подготовки к нашему следующему проекту:
Ниже приведена наша структура каталогов. Теперь, когда она создана, давайте посмотрим, как выглядят другие каталоги!
папка conf
Эта папка используется для хранения файлов конфигурации нашего фреймворка, файл конфигурации по умолчанию: application.ini. Элементы конфигурации см. в руководстве Bird Brother:Woohoo. Зайдите на entest.com/manual/avon. …
папка приложения
Эта папка является ядром нашего фреймворка, в котором содержится общая структура нашего фреймворка и другой контент.
иметь внутри5 папоки.phpфайл, давайте поговорим об этом один за другим сейчас!
Bootstrap.php
Когда вы увидите это, не принимайте это за начальную загрузку внешнего интерфейса, но я так не думаю. Итак, давайте посмотрим, что он делает:
Bootstrap, также известный как bootstrap. Это глобальная запись конфигурации, предоставляемая Yaf. В Bootstrap вы можете выполнять множество глобальных настроек. —— Brother Bird
Давайте посмотрим на это предложение Brother Bird, Он сказал, что bootstrap.php — это программа начальной загрузки и точка входа в глобальную конфигурацию yaf, что означает, что мы можем делать в ней некоторые настройки, например, загружать нашу конфигурацию .ini. файл, загрузите наши сторонние библиотеки классов, такие как обработка изображений, обработка журналов, библиотеки классов, загруженные композитором, и т. д. Давайте сначала посмотрим на исходный код:
<?php
/**
* @name Bootstrap
* @author mateng
* @desc 所有在Bootstrap类中, 以_init开头的方法, 都会被Yaf调用,
* @see http://www.php.net/manual/en/class.yaf-bootstrap-abstract.php
* 这些方法, 都接受一个参数:Yaf_Dispatcher $dispatcher
* 调用的次序, 和申明的次序相同
*/
class Bootstrap extends Yaf_Bootstrap_Abstract {
public function _initConfig() {
//把配置保存起来
$arrConfig = Yaf_Application::app()->getConfig();
Yaf_Registry::set('config', $arrConfig);
}
public function _initPlugin(Yaf_Dispatcher $dispatcher) {
//注册一个插件
$objSamplePlugin = new SamplePlugin();
$dispatcher->registerPlugin($objSamplePlugin);
}
public function _initRoute(Yaf_Dispatcher $dispatcher) {
//在这里注册自己的路由协议,默认使用简单路由
}
public function _initView(Yaf_Dispatcher $dispatcher) {
//在这里注册自己的view控制器,例如smarty,firekylin
}
}
Мы видели, что каждый метод в нем начинается с _init, и причина, по которой он начинается с _init, заключается в том, что все они будут вызываться yaf. Однако все эти методы получают параметр: Yaf_Dispatcher $dispatcher, давайте попробуем определить метод самостоятельно:
public function _initPdobase(Yaf_Dispatcher $dispatcher) {
var_dump('hello,pdo!');
exit;
}
Здесь я настроил метод Pdobase и вывел раздел «hello, pdo!», на этот раз он выведет hello, pdo! На данный момент это означает, что он загружен:
Здесь мы также можем регистрировать плагины, определять маршруты и настраивать их. Это очень просто в использовании? Давайте посмотримпапка контроллеров.
папка контроллеров
Всем более знакома популярная веб-архитектура: Трехуровневая архитектура MVC, тогда эта папка контроллеров и есть наш С, то есть контроллер, через кастомный контроллер типа: Index.php может принимать клиентов Запрос клиента, вызов модели данных , базовая логическая обработка и просмотр вызовов, и, наконец, выполнение запроса клиента. Он получает запрос и решает, какую модель вызвать для обработки запроса, а затем какое представление использовать для отображения возвращенных данных.
папка моделей
C в MVC упоминался выше, поэтому давайте посмотрим, что сейчас делает папка models, она хранит наш M .
«Модель представляет корпоративные данные и бизнес-правила. Из трех компонентов MVC модель имеет наибольшее количество задач обработки. Например, она может использовать объекты компонентов, такие как EJB и компоненты ColdFusion, для обработки базы данных. Данные, возвращаемые моделью, нейтральный, то есть модель не имеет ничего общего с форматом данных.Такая модель может предоставлять данные для нескольких представлений.Поскольку код, применяемый к модели, может быть повторно использован несколькими представлениями, нужно написать только один раз, дублирование кода уменьшено. - Энциклопедия Baidu"
папка просмотров
Мы знаем имя этой папки, она используется для хранения файлов нашего представления, в отличие от двух других папок, нам также нужно создать в ней папку, и имя этой папки должно быть таким же, как и у элемента управления. контроллер тот же.Если у нас есть контроллер Index.php, то мы создадим папку index под представлениями, и в этой папке мы создадим файл шаблона, например index.phtml. Имя файла здесь — это метод нашего контроллера, который я подробно объясню позже в реальном бою.
папка библиотеки
В основном это папка для хранения некоторых наших локальных библиотек классов. Мы будем использовать его позже, и мы объясним его подробно, когда будем его использовать.
папка плагинов
Это каталог плагинов, который используется для хранения некоторых плагинов. Такие как: плагин для генерации PDF-документов, отправка почты phpmailer и т. д.
Что ж, в этой статье мы подробно объяснили структуру каталогов фреймворка, а в следующей статье мы начнем создавать первый контроллер и пусть он выводит «hello, world!»