Joomla Frameworkの概要-シンプルなWebアプリケーションの作成

良い一日、

はじめに

私は約1年半の間Joomlaで書いていて、常に完成したJoomla CMSパッケージから始めました。 それのための拡張機能を開発し、口ひげに吹き飛ばさなかった。 私は定期的にインターネットでいくつかの種類のJoomla Frameworkについて言及していましたが、よく知られているCMSとそのアドオン以外にそれを使用するものは見ませんでした。 フレームワークで書かれたCMSではなく、CMSで書かれたフレームワークです。 これは何?

ドキュメント

クイックスタートガイドを探して、 Joomla!Platform Webサイトにアクセスし、そこでスタンドアロンアプリケーションの作成について説明する記事を見つけました。 これはまさに私が必要とするものではありません。 しかし、いくつかの例へのリンクもありました。 それで、私はそれらを基にすることに決めまし

開始する

プラットフォームを含むアーカイブからライブラリフォルダーをサイトのルートに解凍します。 次に、解凍​​したmyWebAppを配置します 。 追加のジェスチャーを行わずに起動します。

致命的なエラー:クラス 'JLog'がZに見つかりません:\ home \ jframework.local \ www \ libraries \ joomla \ environment \ request.php on line 572

スタック上には、関数JRequest :: clean()があります
それは残念です。 ただし、CMS Joomlaの新しいバージョンでは、すべてのステップで(PhpStormのおかげで)JRequest @deprecatedがプラットフォームの新しいバージョンで削除されることを思い出してください。 プラットフォームの以前のバージョン(11.1)をダウンロードし、ライブラリフォルダーと出来上がりを置き換えます。 動作します。

中身は?

WebAppは2つのファイルで構成されていません。
/index.php
/includes/application.php

このように始めます:
define('_JEXEC', 1);
define('DS', DIRECTORY_SEPARATOR);

//

define('JPATH_BASE', dirname(__FILE__));
define('JPATH_PLATFORM', JPATH_BASE . '/libraries');
define('JPATH_MYWEBAPP',JPATH_BASE);

//
require_once JPATH_PLATFORM.'/import.php';

// -
jimport('joomla.environment.uri');
jimport('joomla.utilities.date');

//

jimport('joomla.application.helper');
$client = new stdClass;
$client->name = 'mywebapp';
$client->path = JPATH_MYWEBAPP;

JApplicationHelper::addClientInfo($client);

// JApplication
$config = Array ('session'=>false);

$app = JFactory::getApplication('mywebapp', $config);

//
$app->render();


2番目のapplication.phpファイル
defined('JPATH_PLATFORM') or die;

final class JMyWebApp extends JApplication
{
public function render()
{
echo ' My Web Application ';
echo 'The current URL is '.JUri::current().'<br/>'; //
echo 'The date is '. JFactory::getDate('now'); //
}
}


それだけですが、どういうわけかまったく面白くありません。 簡単なロギングを追加しましょう。 これを行うには、クラスコンストラクターでロガーを設定します。

function __construct()
{
$options = array(
'logger' => 'formattedtext',
'text_entry_format' => '{DATE}' . chr(9) . '{TIME}' . chr(9) . '{PRIORITY}' . chr(9) . '{CATEGORY}' . chr(9) . '{MESSAGE}',
'text_file_path' => JPATH_BASE,
'text_file' => 'log.php'
);
$category = array('myApp');
Jlog::addLogger($options, JLog::ALL, $category);
}


今、あなたはログインすることができます
JLog::add('Test message!', JLog::ALERT, 'myApp');

データベースを操作してみましょう。 これを行うには、彼女に尋ねる必要があります。 コードを少し調べてみると、デフォルトでは設定がライブラリフォルダから取得されることがわかります。 その中にconfig.example.phpがあります。 名前をconfig.phpに変更し、不要な設定を削除して、DBのみを残します。
class JConfig
{
public $dbtype = 'mysql';
public $host = 'localhost';
public $user = 'root';
public $password = '';
public $db = 'j16';
public $dbprefix = 'test_';
}

JConfigExampleの名前をJConfigに変更することを忘れないでください

いわば、JTable、Joomla ORMと連携してみましょう。
データベースに2列のテーブルを作成します
CREATE TABLE `test_test` (
'id' int(8) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;


ルートにテーブルフォルダーを作成し、その中にファイルtest.phpを作成します
defined('JPATH_PLATFORM') or die;
class TableTest extends JTable
{
var $id;
var $name;
function __construct( &$_db )
{
parent::__construct( '#__test', 'id', $_db );
}
}


接続することを忘れないでください
require_once JPATH_BASE . '/tables/test.php';

レンダリング機能に追加する
$db = & JFactory::getDbo();
$test = new TableTest($db);
$test->name = 'First name';
$test->store();


開始後、 致命的なエラー:クラス 'JTable'が見つかりませんというエラーが表示されます...
次にインポートする必要があります。 さらに、index.phpファイルの行、残りのインポートについても同じことが言えます。
jimport('joomla.database.table');
開始後、新しいレコードがデータベースのテーブルに表示されていることがわかります。

おわりに

ここからは、MVCパラダイムを使用したWebアプリケーションの開発はそれほど遠くありません。 JModel、JView、JControllerなどを接続するためだけに残ります。

Source: https://habr.com/ru/post/J128502/


All Articles