От отказа к началу работы - Yaf (подробности каталога)

задняя часть PHP JavaScript Bootstrap
От отказа к началу работы - Yaf (подробности каталога)

В прошлой статье мы рассказали о некоторых его основных структурах и перенесли их вобщая папкапод. Итак, сегодня давайте изучим его подробную структуру каталогов и улучшим ее.общая папкасодержимое внутри.
На сегодняшний день есть две основные части: первая — это улучшение общей папки, а вторая — подробная интерпретация структуры каталогов.

Заполните общую папку

Мы успешно перенесли файл 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!»