Инфоурок Другое ПрезентацииРазработка на Yii

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

Скачать материал
Скачать материал "Разработка на Yii"

Получите профессию

Менеджер по туризму

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Методические разработки к Вашему уроку:

Получите новую специальность за 2 месяца

Ландшафтный дизайнер

Описание презентации по отдельным слайдам:

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

    1 слайд

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

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

    2 слайд

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

  • Prado
Ruby on Rails 
jQuery 
Symfony 
Joomla Истоки Yii:

    3 слайд

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

  • Магия в PHPclass Component {
    public $publicProperty;
    protected $_prot...

    4 слайд

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

    public function setProtectedProperty($value) {
    $this->_protectedProperty = $value;
    return true;
    }

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

  • class Component {
    
    public function __get($propertyName) {
        $me...

    5 слайд

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

  • $component = new Component();

$component->publicProperty = 'Public value';
e...

    6 слайд

    $component = new Component();

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

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


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

    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:

  • class Autoloader {       
    public function autoload($className) {...

    8 слайд

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

  • Автозагрузка классов в контексте Yii:Yii::import(‘application.components.Some...

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

  • Порождение компонентов function createComponent(array $componentConfig) {...

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

  • $componentConfig = array(
    'class'=>'CUrlManager',
    'urlFormat'=>'path'...

    11 слайд

    $componentConfig = array(
    'class'=>'CUrlManager',
    'urlFormat'=>'path',
    'showScriptName'=>false,
    'rules'=>array(
    '/'=>'site/index',
    '<controller:\w+>/<id:\d+>*'=>'<controller>/view',
    ),
    );

    $component = createComponent($componentConfig);
    Задание любого объекта через массив:

  • Фабрика компонентовComponentFactory$componentsConfig
$components*1“Create and...

    12 слайд

    Фабрика компонентов
    Component
    Factory
    $componentsConfig
    $components
    *
    1
    “Create and store by name”
    ComponentA
    ComponentB
    Client
    createComponent()
    getComponent()
    “Request component by name”

  • Одиночка (Singleton)class Singleton {
    private static $_selfInstance = nul...

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

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

    14 слайд

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

  • $config = array(
	&#039;name&#039;=&gt;&#039;My Web Application&#039;,
    …
    &#039;components&#039;=&gt;array...

    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’);

  • MVC в YiiControllerWidgetModelViewApplicationApplication Components

    16 слайд

    MVC в Yii
    Controller
    Widget
    Model
    View
    Application
    Application Components

  • Маршрутизация web запроса:Application:Request:UrlManager:ControllerApache‘run...

    17 слайд

    Маршрутизация web запроса
    :Application
    :Request
    :UrlManager
    :Controller
    Apache
    ‘run’
    ‘get request’
    ‘get route by request’
    ‘controller/action’
    ‘run action’
    ‘output’
    ‘request’

  • Доступ к базе данных через PDOPDOClientPDO DriverPDO MySQLPDO PostgreSQL…11My...

    18 слайд

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

    1
    1
    MySQL
    PostgreSQL

  • Абстракция базы данныхPDOClient1DbConnectionDbSchemaSchema MySQLSchema Postgr...

    19 слайд

    Абстракция базы данных
    PDO
    Client
    1
    DbConnection
    DbSchema
    Schema MySQL
    Schema PostgreSQL
    1

    DbCommand
    “Control information”
    1
    1
    “Compose and execute queries”
    *
    1

  • Active RecordActiveRecordActiveFinderinsert()
update()
delete()find()
populat...

    20 слайд

    Active Record
    ActiveRecord
    ActiveFinder
    insert()
    update()
    delete()
    find()
    populateRecord()
    Client
    DbCommand
    “Find self instances”
    “Instantiate by query result”
    “Database access”
    “Database access”
    1
    *
    *
    1
    1
    1
    *
    *

  • $allUsers = User::model()-&gt;findAll();

$newUser = new User();
$newUser-&gt;name...

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

  • События (Events) в YiiComponentraiseEvent()eventHandlersEventsender
dataHandl...

    22 слайд

    События (Events) в Yii
    Component
    raiseEvent()
    eventHandlers
    Event
    sender
    data
    Handler
    *
    *
    1
    1
    1
    *
    “Raise”
    “Handle”
    “List of PHP callbacks”
    PHP Callback

  • function handleBeforeSave(CEvent $event) {
    $sender = $event-&gt;sender;...

    23 слайд

    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’

  • Проблема множественного наследованияActiveRecordArPositionSave custom records...

    24 слайд

    Проблема множественного наследования
    ActiveRecord
    ArPosition
    Save custom records display order
    ArFile
    Bind physical file with the db record

    ArPositionFile
    Position + File

  • Поведение (Behavior)Component__call()
attachBehavior()behaviorsBehaviorgetOwn...

    25 слайд

    Поведение (Behavior)
    Component
    __call()
    attachBehavior()
    behaviors
    Behavior
    getOwner()
    events()
    owner
    1
    *
    Event
    data
    1
    1
    *
    *
    “Raise”
    “Handle”

  • class ArBehaviorExample extends CBehavior {
    public function behaviorMetho...

    26 слайд

    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’

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

    27 слайд

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

Получите профессию

Менеджер по туризму

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 625 839 материалов в базе

Скачать материал

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 21.09.2020 198
    • PPTX 122 кбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Николина Виктория Анатольевна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Николина Виктория Анатольевна
    Николина Виктория Анатольевна
    • На сайте: 3 года и 3 месяца
    • Подписчики: 0
    • Всего просмотров: 62114
    • Всего материалов: 202

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Методист-разработчик онлайн-курсов

Методист-разработчик онлайн-курсов

500/1000 ч.

Подать заявку О курсе
  • Сейчас обучается 66 человек из 34 регионов

Курс профессиональной переподготовки

Организация деятельности библиотекаря в профессиональном образовании

Библиотекарь

300/600 ч.

от 7900 руб. от 3950 руб.
Подать заявку О курсе
  • Сейчас обучается 282 человека из 66 регионов

Курс профессиональной переподготовки

Библиотечно-библиографические и информационные знания в педагогическом процессе

Педагог-библиотекарь

300/600 ч.

от 7900 руб. от 3950 руб.
Подать заявку О курсе
  • Сейчас обучается 458 человек из 66 регионов

Курс повышения квалификации

Специалист в области охраны труда

72/180 ч.

от 1750 руб. от 1050 руб.
Подать заявку О курсе
  • Сейчас обучается 40 человек из 19 регионов

Мини-курс

Стратегическое планирование и маркетинговые коммуникации

5 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Преодоление депрессии: путь к психологическому благополучию

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 70 человек из 29 регионов

Мини-курс

Общая химия

10 ч.

1180 руб. 590 руб.
Подать заявку О курсе