Какая методология PHP используется в Joomla (ООП или процедурная)? - PullRequest
0 голосов
/ 31 октября 2018

Я новичок в Joomla и хочу узнать, что такое методология PHP , которая используется Joomla для разработки веб-приложений? Это ООП PHP или Процедурный PHP ?

1 Ответ

0 голосов
/ 01 ноября 2018

Joomla сделан по концепции ООП и соответствует модели MVC. MVC расшифровывается как Model View Controller, и вы можете получить подробности здесь https://docs.joomla.org/Model-View-Controller. Короче говоря, контроллер выбирает компонент и его переменные представления из URL-адреса, и с помощью этих переменных он отбирает данные из соответствующей модели и передает данные обратно в представление. Вид затем отображает необходимые данные. Контроллер является посредником между представлением и моделью. Предположим, что это Joomla Link http://yoursite.com/index.php?option=com_hello&view=hello Таким образом, контроллер выбирает переменную компонента com_hello и переменную представления hello. Теперь в папке компонента com_hello будет файл с именем hello.php, который является основным файлом вашего компонента. В качестве примера я привел следующий код

<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_hello
 *
 * @copyright   Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// Get an instance of the controller prefixed by Hello
$controller = JControllerLegacy::getInstance('Hello');

// Perform the Request task
$input = JFactory::getApplication()->input;
$controller->execute($input->getCmd('task'));

// Redirect if set by the controller
$controller->redirect();

Здесь Статический метод getInstance класса JControllerLegacy создаст контроллер. Он будет создавать экземпляр объекта контроллера класса с именем HelloController. Joomla будет искать объявление этого класса в /components/com_hello/controller.php. После того, как контроллер создан, задание контроллера должно выполнить задачу, как определено в URL: <yoursite>/joomla/index.php?option=com_hello&task=<task_name>. Если задача не задана, заданием по умолчанию является display. Когда используется дисплей, переменная view будет определять, что будет отображаться.

Контроллер может решить перенаправить страницу, обычно после выполнения таких задач, как «сохранить», «удалить», «архив» и т. Д. Последнее утверждение $controller->redirect(); заботится об этом перенаправлении.

Основная точка входа, hello.php, по существу передает управление контроллеру, который обрабатывает выполнение задачи, указанной в запросе. В нашем случае задание пустое, поэтому задание по умолчанию для просмотра, и оно равно hello. Наш компонентно-ориентированный контроллер не делает ничего больше, чем родительский класс, поэтому наш класс контроллера пуст. Итак, наш controller.php выглядит так

class HelloController extends JControllerLegacy
{
}

У класса JControllerLegacy есть такая задача. В нашем примере будет отображено представление с именем Hello. view.html.php

class HelloViewHello extends JViewLegacy
{
    function display($tpl = null)
    {
        // Assign data to the view
        $this->msg = 'Hello';

        // Display the view
        parent::display($tpl);
    }
}

Представление устанавливает текст для вывода, а затем вызывает базовый класс отображения. JViewLegacy это базовый класс для Joomla! Посмотреть. В нашем случае этот метод будет отображать данные с использованием файла tmpl/default.php.

Наш default.php будет выглядеть следующим образом

<h1><?php echo $this->msg; ?></h1>

Это просто простое объяснение того, как работает Joomla MVC. Я мог бы просто дать ссылки, но ссылки много раз ломаются или сайт не работает. Но это страница, с которой я скопировал большинство кодов https://docs.joomla.org/J3.x:Developing_an_MVC_Component/Adding_a_view_to_the_site_part

Вы также можете проверить этот слайк, чтобы лучше понять схему MVC https://www.htmlgoodies.com/beyond/php/article.php/3912211/Principles-Of-MVC-for-PHP-Developers.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...