Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


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

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

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

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

Презентация на тему Разработка на Yii

Содержание

Yii – PHP FrameworkООПМодульностьПростотаВысокое быстродействие Основные характеристики:
Разработка на Yii QuartSoft Corp. Системный архитекторКлимов П.В. Yii – PHP FrameworkООПМодульностьПростотаВысокое быстродействие Основные характеристики: PradoRuby on Rails jQuery Symfony Joomla Истоки Yii: Магия в PHPclass Component {  public $publicProperty;  protected $_protectedProperty; class Component {    public function __get($propertyName) { $component = new Component();$component->publicProperty = 'Public value';echo($component->publicProperty);$component->protectedProperty = 'Protected value';echo($component->protectedProperty); Автозагрузка классов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: class Autoloader {      public function autoload($className) { Автозагрузка классов в контексте 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’,«Карта» автозагрузки классов: Порождение компонентов function createComponent(array $componentConfig) {    $className = $componentConfig['class']; $componentConfig = array(  'class'=>'CUrlManager',  'urlFormat'=>'path',  'showScriptName'=>false,  'rules'=>array( Фабрика компонентов Одиночка (Singleton)class Singleton {  private static $_selfInstance = null; Фабрика компонентов(Component Factory)+Одиночка (Singleton)=Приложение Yii (Yii Application) $config = array(	'name'=>'My Web Application',  …  'components'=>array(		'user'=>array( MVC в Yii Маршрутизация web запроса Доступ к базе данных через PDO Абстракция базы данных Active Record $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(); События (Events) в Yii function handleBeforeSave(CEvent $event) {  $sender = $event->sender;  // Изменяем состояние Проблема множественного наследования Поведение (Behavior) class ArBehaviorExample extends CBehavior {  public function behaviorMethod() { YiiДинамический кодКомпонентная структураПриложение = «одиночка» + «фабрика»Отложенная загрузка и создание объектовMVC«PDO» и «Active Record»СобытияПоведения
Слайды презентации

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

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

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

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

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

Магия в PHPclass Component { public $publicProperty; protected $_protectedProperty;  public

protected $_protectedProperty;

public function setProtectedProperty($value)

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

public function getProtectedProperty() {
return $this->_protectedProperty;
}
}

Слайд 5 class Component {

public function

class Component {  public function __get($propertyName) {  $methodName =

__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}'!");
}
}

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

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

$component->protectedProperty =

$component = new Component();$component->publicProperty = 'Public value';echo($component->publicProperty);$component->protectedProperty = 'Protected value';echo($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

Автозагрузка классов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:

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


Слайд 8 class Autoloader {

class Autoloader {   public function autoload($className) {  $classFileName

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();
}
}

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

$someObj = new SomeClass();
‘SomeComponent’

Автозагрузка классов в контексте 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’,«Карта» автозагрузки классов:

=> ‘/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',

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

'showScriptName'=>false,
'rules'=>array(
'/'=>'site/index',

'/*'=>'/view',
),
);

$component = createComponent($componentConfig);

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


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

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

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

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

= null;

public static function getInstance()

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

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

$singleton = Singleton::getInstance();

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

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

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

$config = array(	'name'=>'My Web Application', … 'components'=>array(		'user'=>array(		  'allowAutoLogin'=>true,		),

'components'=>array(
'user'=>array(
'allowAutoLogin'=>true,
),


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

$application = Yii::app();
$user = Yii::app()->getComponent(‘user’);

Слайд 16 MVC в Yii

MVC в Yii

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

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

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

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

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

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

Слайд 20 Active Record

Active Record

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

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

$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();

user’;
$newUser->save();

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


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

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

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

function 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’


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

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

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

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

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

class ArBehaviorExample extends CBehavior { public function behaviorMethod() {  $owner

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’

  • Имя файла: razrabotka-na-yii.pptx
  • Количество просмотров: 136
  • Количество скачиваний: 0