рд╢реБрдн рджрд┐рди,
рдкрд░рд┐рдЪрдп
рдореИрдВ рд▓рдЧрднрдЧ рдбреЗрдврд╝ рд╕рд╛рд▓ рд╕реЗ рдЬреВрдорд▓рд╛ рдХреЗ рддрд╣рдд рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╣рдореЗрд╢рд╛ рддреИрдпрд╛рд░ рдЬреВрдорд▓рд╛ рд╕реАрдПрдордПрд╕ рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рдФрд░ рдореВрдВрдЫреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдЙрдбрд╝рд╛ред рд╕рдордп-рд╕рдордп рдкрд░ рдореБрдЭреЗ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЬреВрдорд▓рд╛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдЙрд▓реНрд▓реЗрдЦреЛрдВ рдореЗрдВ рдорд┐рд▓реЗ, рд▓реЗрдХрд┐рди рдкреНрд░рд╕рд┐рджреНрдз рд╕реАрдПрдордПрд╕ рдФрд░ рдЗрд╕рдХреЗ рдРрдб-рдСрди рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдХреБрдЫ рднреА рдирд╣реАрдВ рджреЗрдЦрд╛ред рд╕реНрдерд┐рддрд┐ рдордЬрд╝рд╛рдХрд┐рдпрд╛ рд╣реИ, рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╕реАрдПрдордПрд╕ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╕реАрдПрдордПрд╕ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдлреНрд░реЗрдорд╡рд░реНрдХред рдпрд╣ рдХреНрдпрд╛ рд╣реИ?
рдкреНрд░рд▓реЗрдЦрди
рдХреНрд╡рд┐рдХ рд╕реНрдЯрд╛рд░реНрдЯ рдЧрд╛рдЗрдб рдХреА рдЦреЛрдЬ рдореЗрдВ, рдореИрдВ
рдЬреВрдорд▓рд╛! рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЧрдпрд╛ рдФрд░ рд╡рд╣рд╛рдБ рдПрдХ рд▓реЗрдЦ рдорд┐рд▓рд╛ рдЬрд┐рд╕рдореЗрдВ рд╕реНрдЯреИрдВрдб рдЕрд▓реЛрди рдПрдкреНрд▓реАрдХреЗрд╢рди рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╡рд░реНрдгрди рдерд╛ред рдпрд╣ рд╡рд╣реА рдирд╣реАрдВ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдПрдХ-рджреЛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдХрдбрд╝реА рднреА рдереАред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ
рдЙрди рдкрд░ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдкреНрд░рд╛рд░рдВрдн
рд╣рдорд╛рд░реА рд╕рд╛рдЗрдЯ рдХреА рдЬрдбрд╝ рдореЗрдВ
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдЕрдирдкреИрдХ рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдмрд╛рдж рдЕрдирдкреИрдХ рдХрд┐рдП рдЧрдП
myWebApp рдХреЛ рд░рдЦрддрд╛ рд╣реИ ред рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рдЗрд╢рд╛рд░реЗ рдХреЗ рд╣рдо рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВред
рдШрд╛рддрдХ рддреНрд░реБрдЯрд┐: рд╡рд░реНрдЧ 'JLog' Z рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛: \ рд╣реЛрдо \ jframework.local \ www \ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ \ рдЬреВрдорд▓рд╛ \ рдкрд░реНрдпрд╛рд╡рд░рдг \ request.php рд▓рд╛рдЗрди 572 рдкрд░рдФрд░ рд╕реНрдЯреИрдХ рдкрд░ рд╣рдо рдлрд╝рдВрдХреНрд╢рди JRequest :: clean () рджреЗрдЦрддреЗ рд╣реИрдВ
рдпрд╣ рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИред рд▓реЗрдХрд┐рди, рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рд╕реАрдПрдордПрд╕ рдЬреВрдорд▓рд╛ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╣рд░ рдХрджрдо рдкрд░ (PhpStorm рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж) рдПрдХ рдЕрдиреБрд╕реНрдорд╛рд░рдХ рд╣реИ рдХрд┐ JRequest @deprecated рдХреЛ рдордВрдЪ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг (11.1) рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдлрд╝реЛрд▓реНрдбрд░ рдФрд░ рд╡реЙрдЗрд▓рд╛ рдХреЛ рдмрджрд▓реЗрдВред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИ?
рд╣рдорд╛рд░реЗ WebApp рдореЗрдВ рджреЛ рдлрд╛рдЗрд▓реЗрдВ рдирд╣реАрдВ рд╣реИрдВ:
/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();
рджреВрд╕рд░реА рдПрдкреНрд▓рд┐рдХреЗрд╢рдиред 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 рдХреЛ рдвреВрдВрдврддреЗ рд╣реИрдВред рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВред рдХреЗрд╡рд▓ рдбреАрдмреА рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред
class JConfig
{
public $dbtype = 'mysql';
public $host = 'localhost';
public $user = 'root';
public $password = '';
public $db = 'j16';
public $dbprefix = 'test_';
}
JConfigExample рдХреЛ JConfig рдХрд╛ рдирд╛рдо рджреЗрдирд╛ рди рднреВрд▓реЗрдВрдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП JTable, Joomla ORM рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред
рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рджреЛ рдХреЙрд▓рдо рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВ
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();
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рддреНрд░реБрдЯрд┐ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ
рдШрд╛рддрдХ рддреНрд░реБрдЯрд┐: рдХрдХреНрд╖рд╛ 'рдЬреЗрдЯрдмрд▓' рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛ ...рдлрд┐рд░ рдЖрдкрдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, index.php рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рд▓рд╛рдЗрди, рдмрд╛рдХреА рдЖрдпрд╛рддреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЬрд╛рддреА рд╣реИ:
jimport('joomla.database.table');
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдпрд╣рд╛рдБ рд╕реЗ рдпрд╣ MVC рдкреНрд░рддрд┐рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЕрдм рддрдХ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ JModel, JView, JController рдФрд░ рдЖрдЧреЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред