Комментарии

Приложение командной строки Hello World
( 0 Голосов )

Рассмотрим далее исходный код приложения командной строки Hello World из файла platform-test/joomla-platform/cli/101-hello-world/run.php). Ниже приведена первая часть исходного кода этого приложения.

// Это достоверная точка входа в Joomla!
// Требуется загрузка платформы Joomla! из файла import.php.
define (' _JEXEC, ') ;

// задать константу, связанную с базовым путем к файлам // Это одна из немногих констант, обязательных для платформы Joomla! define('JPATH_BASE', dirname( FILE ));
// выполнить начальную загрузку приложения require dirname(dirname(dirname( FILE ))).'/bootstrap.php';
// импортировать класс JCli с платформы j import('joomla.application.cli');

В этой части исходного кода сначала определяется константа JEXEC, уведомляющая последующие программные файлы о том, что они выполняются в приложении Joomla. Эта константа требуется для выполнения файлов рассматриваемой здесь платформы. Затем в данной части кода определяется константа JPATH_BASE. Это нужно сделать обязательно, хотя ее применение зависит от конкретного приложения. Как правило, она задает путь к корневой папке приложения. В данном случае константа JPATHBASE не используется, и поэтому в ней задается путь к текущей папке.

Далее следует команда require, включающая отредактированный ранее файл bootstrap.php. В данном случае включаемый файл находится в корневой папке (platform_test), которая находится на три уровня иерархии выше текущей папки (platform_test/cli/101-hello-world), и поэтому для доступа к ней выполняются подряд три команды dirname (). Именно такая структура папок используется в данном примере. Файл bootstrap.php загружает, в свою очередь, файл libraries/import, php, в котором определяется целый ряд констант для данной платформы и загружаются некоторые из основных ее классов.

И последняя команда в данной части кода импортирует файл cli.php из папки libraries/joomla/application. В этом файле объявляется класс, который обычно расширяют все приложения командной строки на данной платформе.

Ниже приведена остальная часть исходного кода из примера приложения Hello World.

class  HelloWorld extends  JCli
{
/**
* Выполняет приложение
* Метод 'execute' служит точкой входа в приложение командной строки.
* @return void
* @since 11.3
*/ public function execute() { // отправить символьную строку на стандартный вывод $this->out('Hello world!'); } } //  получить  экземпляр объекта приложения, передав имя его класса методу JCli::getlnstance(), а также воспользоваться связыванием методов  в цепочку, чтобы выполнить  приложение JCli::getlnstance('HelloWorld')->execute();

В этой части исходного кода рассматриваемого здесь примера приложения создается класс, расширяющий класс JCli. В этом классе определяется единственный метод execute (), в котором вызывается метод out () из класса JCli для вывода сообщения на консоль. После этого закрывается сначала объявление данного метода, а затем и его класса.

И в последней строке из данной части кода вызываемые методы связываются в цепочку для выполнения двух действий. Сначала получается новый объект типа JCli с помощью метода getlnstance (), а затем для данного объекта вызывается метод execute (). В конечном итоге на консоль выводится сообщение «Hello world!» (Здравствуй, мир). Следует иметь в виду, что эта последняя строка кода оказывается за пределами объявления класса HelloWorld данного приложения, и поэтому она выполняется немедленно.


Понравился материал? Пригодилась информация? Плюсани в социалки!


 
Похожие новости
Добавить комментарий


Защитный код