Reflection api. Reflectionclass.
Відео: Reflection API | Java Tutorial
Всім привіт. Сьогодні я пишу першу статтю з серії, присвяченій Reflection API.
Для початку варто пояснити, що таке Reflection API? У перекладі з англійської це означає "Відображення" і це не просто так. Відображення дозволяють нам дізнатися всю інформацію про якомусь класі, функції, методі, винятки та іншого. Це досить велика тема, і сьогодні ми почнемо вивчати відображення класу, а потім перейдемо до інших.
Відображення класу (ReflectionClass) дозволяє дізнатися все про будь-який клас. Давайте розглядати на прикладі.
створіть файл user.php і наповніть його наступним кодом:
lt ;?php
namespaceUsers-
classUser{
protected $ loggedIn =false-
protected $ data =[] -
publicfunction getData(){
return $ this-gt;data-
}
publicfunction setData($ data){
$ this-gt;data = $ data-
}
publicfunction isLoggedIn(){
return $ this-gt;loggedIn-
}
}
?gt;Думаю, пояснювати тут нема чого. Все просто елементарно. Тепер створимо файл index.php і підключимо там наш файл user.php
lt ;?php
include `User.php`-
?gt;Для того, щоб дізнатися все про наш клас, нам потрібно створити об`єкт класу ReflectionClass і передати йому в конструктор назва нашого класу у вигляді рядка.
lt ;?php
include `User.php`-
$ rc =newReflectionClass(`Users User`) -
?gt;Оскільки в класі використовується простір імен, не забувайте вказувати його також і в конструкторі класу ReflectionClass.
Відео: Reflection
Отже, у нас створено потрібний нам об`єкт. Давайте подивимося все методи, які він має.
lt ;?php
include `User.php`-
$ rc =newReflectionClass(`Users User`) -
echo ``
-
print_r(get_class_methods($ rc)) -
echo ``-
?gt;Якщо ви подивіться, що виведе даний код, то побачите безліч найрізноманітніших методів, які має клас ReflectionClass. Давайте використаємо деякі з них.
Відео: PHP Reflection API: Reflection Method (2/5)
lt ;?php
include `User.php`-
$ rc =newReflectionClass(`Users User`) -
echo $ rc-gt;getName() -
echo `
`-
echo $ rc-gt;getShortName() -
?gt;метод getName () поверне повне ім`я, включаючи простору імен, а метод getShortName () повертає тільки ім`я переданого класу.
Ще один дуже корисний метод даного класу - hasMethod ()
lt ;?php
include `User.php`-
$ rc =newReflectionClass(`Users User`) -
if($ rc-gt;hasMethod(`IsLoggedIn`)){
echo `Метод існує`-
}
?gt;Думаю, тут все зрозуміло. Зараз я приведу декілька часто використовуваних методів.
lt ;?php
include `User.php`-
$ rc =newReflectionClass(`Users User`) -
echo `Початкова лінія:`.$ rc-gt;getStartLine() -
echo `Кінцева лінія:`.$ rc-gt;getEndLine() -
echo `Простір імен:`.$ rc-gt;getNamespaceName() -
echo `Методи класу:`.$ rc-gt;getMethods() -
echo `Властивості класу:`.$ rc-gt;getProperties() -
?gt;Це одні з найчастіших методів. Але, звичайно, бувають потрібні і інші. Наприклад, isInstance () перевіряє, чи можна створити об`єкт даного класу чи ні, а метод isAbstract () перевіряє, абстрактний це клас чи ні і так далі. Їх все ви можете подивитися за допомогою get_class_methods (), як я показав на початку статті.
У висновку хочеться показати дуже корисний статичний метод - export ();
Оскільки метод статичний, то створювати об`єкт нам не потрібно.
lt ;?php include `User.php`- ReflectionClass::export(`Users User`) -?gt;Цей метод дозволяє дізнатися все про клас: константи, властивості, методи і так далі.
Отже, на цьому у мене все. Сьогодні ми розібралися з відображенням класу (ReflectionClass). Дякую за увагу і побачимося в наступних статтях!
Як зробити 3d модель об`єкта на jаvascript.
Nodejs. Як обробляти post запити.
Nodejs. Як створити "список справ". Частина 1.
Створення движка на mvc. Створюємо можливість додавання користувача в базу даних через адмін панель
Minitool power data recovery - відновить флешки швидко і просто
Bootstrap 4. Введення.
Data doctor recovery simcard - відновить ваші контакти
Шаблон проектування адаптер. Pattern adapter.
Створення движка на mvc. Робимо можливість редагування і видалення користувачів.
Створення движка на mvc. Починаємо робити чат.
Модифікатори доступу в php
Створення класу в php
Reflection api. Reflectionparameter.
Reflection api. Reflectionobject.
Атрибут data- * в html5.
Шаблон проектування "стратегія" (pattern strategy).
Nodejs. Template engine. Частина 1.
Reflection api. Reflectionmethod.
Reflection api. Reflectionproperty.
Створення движка на mvc. Начинам робити систему розподілу прав користувачів.
Створення движка на mvc. Створюємо авторизацію.
Створення движка на mvc. Створюємо авторизацію.
Створення движка на mvc. Робимо можливість редагування і видалення користувачів.
Nodejs. Як створити "список справ". Частина 1.
Модифікатори доступу в php
Nodejs. Template engine. Частина 1.
Атрибут data- * в html5.
Шаблон проектування "стратегія" (pattern strategy).
Reflection api. Reflectionproperty.
Nodejs. Як обробляти post запити.
Рекурсія в php