Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
27 слайдов
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
122.00 kB
Просмотров:
39
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд
Содержание слайда: Разработка на Yii
QuartSoft Corp.
№2 слайд
Содержание слайда: Yii – PHP Framework
Yii – PHP Framework
№3 слайд
Содержание слайда: Prado
Prado
Ruby on Rails
jQuery
Symfony
Joomla
№4 слайд
Содержание слайда: Магия в PHP
class Component {
public $publicProperty;
protected $_protectedProperty;
public function setProtectedProperty($value) {
$this->_protectedProperty = $value;
return true;
}
public function getProtectedProperty() {
return $this->_protectedProperty;
}
}
№5 слайд
Содержание слайда: class Component {
class 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}'!");
}
}
№6 слайд
Содержание слайда: $component = new Component();
$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();
№8 слайд
Содержание слайда: class Autoloader {
class 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();
}
}
№9 слайд
Содержание слайда: Автозагрузка классов в контексте Yii:
Yii::import(‘application.components.SomeClass');
Yii::import(‘application.components.OtherClass');
…
$someObj = new SomeClass();
№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',
'<controller:\w+>/<id:\d+>*'=>'<controller>/view',
),
);
$component = createComponent($componentConfig);
№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();
№14 слайд
Содержание слайда: Фабрика компонентов(Component Factory)
Фабрика компонентов(Component Factory)
+
Одиночка (Singleton)
=
Приложение Yii (Yii Application)
№15 слайд
Содержание слайда: $config = array(
$config = array(
'name'=>'My Web Application',
…
'components'=>array(
'user'=>array(
'allowAutoLogin'=>true,
),
…
),
);
Yii::createWebApplication($config)->run();
…
$application = Yii::app();
$user = Yii::app()->getComponent(‘user’);
№16 слайд
Содержание слайда: MVC в Yii
№17 слайд
Содержание слайда: Маршрутизация web запроса
№18 слайд
Содержание слайда: Доступ к базе данных через PDO
№19 слайд
Содержание слайда: Абстракция базы данных
№20 слайд
Содержание слайда: Active Record
№21 слайд
Содержание слайда: $allUsers = User::model()->findAll();
$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
№23 слайд
Содержание слайда: function handleBeforeSave(CEvent $event) {
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)
№26 слайд
Содержание слайда: class ArBehaviorExample extends CBehavior {
class 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’
№27 слайд
Содержание слайда: Yii
Динамический код
Компонентная структура
Приложение = «одиночка» + «фабрика»
Отложенная загрузка и создание объектов
MVC
«PDO» и «Active Record»
События
Поведения