PHP Wrapper клас за методи

PHP: Class Wrapper Class

И така, най-простото решение е да се създаде метод (обвивка), който да вземе името и параметъра на извикания метод като параметри. В този случай методът на обвивка е самата „обвивка“. Прилагането на това решение може да бъде както следва:

Изключения.php

ModelExtention.php

MyModel.php

Нека да разгледаме какво съм написал тук.

Примерът включва няколко файла:

  • Изключения.php - в него хвърлени в изключения за улавяне на грешки в заявки ExceptionDb и в ExceptionModel .
  • ModelExtention.php - родителски клас на модела. Всички модели, използвани в проекта, се наследяват от него. Той също така описва обвивката. Името на метода трябва да бъде извикано като първи аргумент, а данните, предадени на извикания метод, като втори аргумент. Преди да извикате метода, чрез функцията is_callable се проверява дали той съществува и може да бъде извикан; в противен случай се хвърля изключение ExceptionModel, което веднага се прихваща, тъй като конструкцията if - else се поставя в блок try-catch. Ако методът съществува, той се извиква, поставен в блок try-catch, който улавя заявки ExceptionDb от базата данни. Този момент трябваше да бъде осъзнат.
  • MyModel.php - тестов модел. Класът MyModel разширява ModelExtension. Той описва тестови методи, които се изпълняват успешно (метод на заявка) или връщат изключение ExceptionDb (метод errorQuery).
  • index.php - събира всички файлове и стартира тестов случай.