<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

После прохождения курса Вы без труда сможете создавать любые сайты с использованием фреймворка Yii, причём делать это будете быстро и качественно.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Reflection API. ReflectionClass.

Reflection API. ReflectionClass.

Всем привет. Сегодня я пишу первую статью из серии, посвященной Reflection API.

Для начала стоит объяснить, что такое Reflection API? В переводе с английского это обозначает "Отражение" и это не просто так. Отражения позволяют нам узнать всю информацию о каком-нибудь классе, функции, методе, исключениях и прочего. Это достаточно обширная тема, и сегодня мы начнем изучать отражение класса, а потом перейдем к другим.

Отражение класса(ReflectionClass) позволяет узнать все про любой класс. Давайте рассматривать на примере.

Создайте файл user.php и наполните его следующим кодом:

<?php
  namespace Users;

  class User {
   protected $loggedIn = false;
   protected $data = [];

   public function getData() {
    return $this->data;
   }

   public function setData($data) {
    $this->data = $data;
  }

   public function isLoggedIn() {
    return $this->loggedIn;
   }
  }
?>

Думаю, пояснять здесь нечего. Все просто элементарно. Теперь создадим файл index.php и подключим там наш файл user.php

<?php
  include 'user.php';
?>

Для того, чтобы узнать все о нашем классе, нам нужно создать объект класса ReflectionClass и передать ему в конструктор название нашего класса в виде строки.

<?php
  include 'user.php';

  $rc = new ReflectionClass('Users\User');
?>

Т.к. в классе используется пространство имен, не забывайте указывать его также и в конструкторе класса ReflectionClass.

Итак, у нас создан нужный нам объект. Давайте посмотрим все методы, которые он имеет.

<?php
  include 'user.php';

  $rc = new ReflectionClass('Users\User');
  echo '<pre>';
  print_r(get_class_methods($rc));
  echo '</pre>';
?>

Если вы посмотрите, что выведет данный код, то увидите множество самых разных методов, которые имеет класс ReflectionClass. Давайте используем некоторые из них.

<?php
  include 'user.php';

  $rc = new ReflectionClass('Users\User');
  echo $rc->getName();
  echo '<br>';
  echo $rc->getShortName();
?>

Метод getName() вернет полное имя, включая пространства имен, а метод getShortName() возвращает только имя переданного класса.

Еще один очень полезный метод данного класса - hasMethod()

<?php
  include 'user.php';

  $rc = new ReflectionClass('Users\User');
  if($rc->hasMethod('isLoggedIn')) {
   echo 'Метод существует';
  }
?>

Думаю, тут все понятно. Сейчас я приведу несколько часто используемых методов.

<?php
  include 'user.php';

  $rc = new ReflectionClass('Users\User');
  echo 'Начальная линия: '.$rc->getStartLine();
  echo 'Конечная линия: '.$rc->getEndLine();
  echo 'Пространство имен: '.$rc->getNamespaceName();
  echo 'Методы класса: '.$rc->getMethods();
  echo 'Свойства класса: '.$rc->getProperties();
?>

Это одни из самых частых методов. Но, конечно, бывают нужны и другие. К примеру, isInstance() проверяет, можно ли создать объект данного класса или нет, а метод isAbstract() проверяет, абстрактный это класс или нет и так далее. Их все вы можете посмотреть с помощью get_class_methods(), как я показал в начале статьи.

В заключении хочется показать очень полезный статический метод - export();

Т.к. метод статический, то создавать объект нам не нужно.

<?php   include 'user.php';   ReflectionClass::export('Users\User'); ?>

Этот метод позволяет узнать все о классе: константы, свойства, методы и так далее.

Итак, на этом у меня все. Сегодня мы разобрались с отражением класса(ReflectionClass). Спасибо за внимание и увидимся в следующих статьях!

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.