utility is work on production middlewhere, but this project for see how work github, modules, integrates with services and phpstorm.
для уникнення повторного запуска скрипта (по крону, з консолі, ...)
$pid_file = "/var/run/some_job_or_daemon.pid";
DenyMultiplyRun::setPidFile($pid_file);
// @something_do
// not necessary
DenyMultiplyRun::deletePidFile($pid_file);
Deny multiply run php-code while previous process exist. Use for cron job or daemon.
Концепція розробки яка автором закладена:
-
якщо ексепшини не викидується - 100% все відпрацювало правильно. В тому числі і натівні функцції php. Будь-які помилки викинуть Exception з детальним повідомленням для подальшої можливості коректної обробки в проектах і подальшого виправлення.
-
максимальна інформативність при будь-яких збоях, що можуть виникнути при роботі бібліотеки. Кожен Exception має мати:
- унікальний клас
- максимально детальне повідомлення про причину і що робити.
-
максимальна зручність і простота використання.
-
максимальна зручність і простота тестування. Адже чим простіше - тим:
4.1. менше зусиль для тестів.
4.2. менша ймовірність помилок що не покриті тестами.
4.3. швидший поріг 100% і часткового входження в проект.
-
повна інтеграція з PHPSTORM 2017.1.4 (з включеними перевірками на стандарти)
=В реалізації:=
- статичнийа не динамічний визов методів допомагає
- обійтись без new
- уникнути мороки з передачею об'єкта в інші місця програми.
- кслас з статичними методами а не просто функції для:
- не засорювання поля USE де використовуватиметься бібліотека,
- приховання допоміжних методів/змінних від автодоповнювача.