<MyRusakov.ru />

WordPress 6 с Нуля до Гуру

WordPress 6 с Нуля до Гуру

Этот курс научит Вас созданию самых разных сайтов на самой популярной в мире CMS - WordPress. Вы увидите установку и настройку локального сервера, разбор каждой настройки, каждой кнопки и каждого пункта меню в панели WordPress.

Также Вы получите и всю практику, поскольку прямо в курсе с нуля создаётся полноценный Интернет-магазин, который затем публикуется в Интернете. И всё это прямо на Ваших глазах.

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

И, наконец, к курсу идёт ценнейший Бонус по тому, как используя ChatGPT и создавая контент для сайта, можно выйти на пассивный доход. Вы наглядно увидите, как зарегистрироваться в ChatGPT (в том числе, и если Вы из России), как правильно выбрать тему для сайта, как правильно генерировать статьи для него(чтобы они индексировались поисковыми системами) и как правильно монетизировать трафик на сайте.

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

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

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

Подписавшись по 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):

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