Разделы презентаций


Разработка на Yii

Содержание

Yii – PHP FrameworkООПМодульностьПростотаВысокое быстродействие Основные характеристики:

Слайды и текст этой презентации

Слайд 1Разработка на Yii
QuartSoft Corp.
Системный архитектор
Климов П.В.

Разработка на Yii QuartSoft Corp. Системный архитекторКлимов П.В.

Слайд 2Yii – PHP Framework
ООП
Модульность
Простота
Высокое быстродействие
Основные характеристики:

Yii – PHP FrameworkООПМодульностьПростотаВысокое быстродействие Основные характеристики:

Слайд 3Prado
Ruby on Rails
jQuery
Symfony
Joomla
Истоки Yii:

PradoRuby on Rails jQuery Symfony Joomla Истоки Yii:

Слайд 4Магия в PHP
class Component {
public $publicProperty;
protected

$_protectedProperty;

public function setProtectedProperty($value) {

$this->_protectedProperty = $value;
return true;
}

public function getProtectedProperty() {
return $this->_protectedProperty;
}
}
Магия в PHPclass Component {  public $publicProperty;  protected $_protectedProperty;    public function setProtectedProperty($value)

Слайд 5class Component {

public function __get($propertyName) {

$methodName = 'get'.$propertyName;
if

(method_exists($this, $methodName)) {
return call_user_func( array($this, $methodName) );
} else {
throw new Exception("Missing property {$propertyName}'!");
}
}

public function __set($propertyName, $value) {
$methodName = 'set'.$propertyName;
if (method_exists($this, $methodName)) {
return call_user_func( array($this, $methodName), $value );
} else {
throw new Exception("Missing property {$propertyName}'!");
}
}
class Component {    public function __get($propertyName) {    $methodName = 'get'.$propertyName;

Слайд 6$component = new Component();

$component->publicProperty = 'Public value';
echo($component->publicProperty);

$component->protectedProperty = 'Protected value';
echo($component->protectedProperty);


$component = new Component();$component->publicProperty = 'Public value';echo($component->publicProperty);$component->protectedProperty = 'Protected value';echo($component->protectedProperty);

Слайд 7Автозагрузка классов
require_once('components/SomeClass.php');
$someObj = new SomeClass();

require_once('components/OtherClass.php');
$otherObj = new OtherClass();

require_once('components/SomeClass.php');
$anotherSomeObj = new

SomeClass();
Подключение файлов по принципу DLL:

Автозагрузка классовrequire_once('components/SomeClass.php');$someObj = new SomeClass();…require_once('components/OtherClass.php');$otherObj = new OtherClass();…require_once('components/SomeClass.php');$anotherSomeObj = new SomeClass();Подключение файлов по принципу DLL:

Слайд 8class Autoloader {
public function

autoload($className) {
$classFileName = ‘components/'.$className.'.php';

if (file_exists($classFileName)) {
require_once($classFileName);
return true;
}
return false;
}

public function register() {
return spl_autoload_register( array($this, 'autoload') );
}

public function __construct() {
$this->register();
}
}
class Autoloader {      public function autoload($className) {    $classFileName =

Слайд 9Автозагрузка классов в контексте Yii:
Yii::import(‘application.components.SomeClass');
Yii::import(‘application.components.OtherClass');

$someObj = new SomeClass();
‘SomeComponent’ => ‘/home/www/…/components/SomeClass.php’,
‘OtherComponent’

=> ‘/home/www/…/components/OtherClass.php’,
«Карта» автозагрузки классов:

Автозагрузка классов в контексте Yii:Yii::import(‘application.components.SomeClass');Yii::import(‘application.components.OtherClass');…$someObj = new SomeClass();‘SomeComponent’ => ‘/home/www/…/components/SomeClass.php’,‘OtherComponent’ => ‘/home/www/…/components/OtherClass.php’,«Карта» автозагрузки классов:

Слайд 10Порождение компонентов
function createComponent(array $componentConfig) {
$className

= $componentConfig['class'];
if (empty($className)) {

throw new Exception(‘Missing parameter "class"!');
}
unset($componentConfig['class']);
if (!class_exists($className)) {
Yii::import($className); // Автозагрузка
}
$component = new $className();
foreach($componentConfig as $name=>$value) {
$component->$name = $value; // Конфигурация
}
return $component;
}

Слайд 11$componentConfig = array(
'class'=>'CUrlManager',
'urlFormat'=>'path',
'showScriptName'=>false,

'rules'=>array(
'/'=>'site/index',
'/*'=>'/view',

),
);

$component = createComponent($componentConfig);

Задание любого объекта через массив:

$componentConfig = array(  'class'=>'CUrlManager',  'urlFormat'=>'path',  'showScriptName'=>false,  'rules'=>array(    '/'=>'site/index',

Слайд 12Фабрика компонентов

Фабрика компонентов

Слайд 13Одиночка (Singleton)
class Singleton {
private static $_selfInstance = null;


public static function getInstance() {

if (!is_object(self::$_selfInstance)) {
self::$_selfInstance = new Singleton();
}
return self::$_selfInstance;
}

private function __construct() {
// закрытый конструктор
}
}

$singleton = Singleton::getInstance();
Одиночка (Singleton)class Singleton {  private static $_selfInstance = null;    public static function getInstance()

Слайд 14Фабрика компонентов(Component Factory)
+
Одиночка (Singleton)
=
Приложение Yii (Yii Application)

Фабрика компонентов(Component Factory)+Одиночка (Singleton)=Приложение Yii (Yii Application)

Слайд 15$config = array(
'name'=>'My Web Application',

'components'=>array(
'user'=>array(

'allowAutoLogin'=>true,
),

),
);
Yii::createWebApplication($config)->run();

$application = Yii::app();
$user = Yii::app()->getComponent(‘user’);
$config = array(	'name'=>'My Web Application',  …  'components'=>array(		'user'=>array(		    'allowAutoLogin'=>true,		),

Слайд 16MVC в Yii

MVC в Yii

Слайд 17Маршрутизация web запроса

Маршрутизация web запроса

Слайд 18Доступ к базе данных через PDO

Доступ к базе данных через PDO

Слайд 19Абстракция базы данных

Абстракция базы данных

Слайд 20Active Record

Active Record

Слайд 21$allUsers = User::model()->findAll();

$newUser = new User();
$newUser->name = ‘new user’;
$newUser->save();

$existingUser =

User::model()->findByName(‘testuser’);
$existingUser->email = ‘newemail@domain.com’;
$existingUser->save();

$allUsers = User::model()->findAll();$newUser = new User();$newUser->name = ‘new user’;$newUser->save();$existingUser = User::model()->findByName(‘testuser’);$existingUser->email = ‘newemail@domain.com’;$existingUser->save();

Слайд 22События (Events) в Yii

События (Events) в Yii

Слайд 23function handleBeforeSave(CEvent $event) {
$sender = $event->sender;
//

Изменяем состояние отправителя события:
$sender->create_date = date('Y-m-d H:i:s', strtotime('NOW'));
}

$user

= new User();
// Назначаем обработчик события:
$user->onBeforeSave = ‘handleBeforeSave’;
$user->name = ‘test name’;
$user->save();

echo $user->create_date; // Вывод: ‘2012-03-22 16:42’

function handleBeforeSave(CEvent $event) {  $sender = $event->sender;  // Изменяем состояние отправителя события:  $sender->create_date =

Слайд 24Проблема множественного наследования

Проблема множественного наследования

Слайд 25Поведение (Behavior)

Поведение (Behavior)

Слайд 26class ArBehaviorExample extends CBehavior {
public function behaviorMethod() {

$owner = $this->getOwner();
$owner->create_date

= date('Y-m-d H:i:s', strtotime('NOW'));
}
}

$user = new User();
// Добавляем поведение:
$behavior = new ArBehaviorExample();
$user->attachBehavior($behavior);

// Вызываем метод поведения:
$user->behaviorMethod();
echo $user->create_date; // Вывод: ‘2012-03-22 16:46’
class ArBehaviorExample extends CBehavior {  public function behaviorMethod() {    $owner = $this->getOwner();

Слайд 27Yii
Динамический код
Компонентная структура
Приложение = «одиночка» + «фабрика»
Отложенная загрузка и создание

объектов
MVC
«PDO» и «Active Record»
События
Поведения

YiiДинамический кодКомпонентная структураПриложение = «одиночка» + «фабрика»Отложенная загрузка и создание объектовMVC«PDO» и «Active Record»СобытияПоведения

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика