П’яте видання цієї популярної книги повністю оновлено для PHP 7: зокрема, замінено менеджер пакетів PEAR на Composer, а також додано новий матеріал про Vagrant і стандарти PHP. Вона дає міцну базу з підтримки об’єктів у PHP, а далі розвиває цю основу, щоб прищепити ключові принципи проєктування програмного забезпечення, і вже потім розглядає інструменти та практики, необхідні для розробки, тестування й розгортання надійного коду.
PHP Objects, Patterns, and Practice починається з розгляду об’єктно-орієнтованих можливостей PHP. Вона знайомить із ключовими темами, зокрема оголошенням класів, наслідуванням, рефлексією та багатьом іншим.
Наступний розділ присвячено патернам проєктування. У ньому пояснюються принципи, які роблять патерни такими потужними. Книга охоплює багато класичних патернів проєктування та містить розділи про корпоративні й бази даних патерни.
Останній сегмент книги розглядає інструменти та практики, які допоможуть перетворити чудовий код на успішний проєкт. У цьому розділі показано, як керувати кількома розробниками та релізами за допомогою git, як керувати збірками й залежностями за допомогою Composer. Також досліджуються стратегії автоматизованого тестування та безперервної інтеграції. У сукупності ці три складники: основи об’єктів, принципи проєктування та найкращі практики допоможуть читачеві створювати елегантні й надзвичайно надійні системи.
PHP Objects, Patterns, and Practice:
- Описує та демонструє вбудовані об’єктно-орієнтовані можливості PHP
- Розкладає на складові принципи об’єктно-орієнтованого проєктування, пояснюючи ключові патерни за допомогою практичних прикладів.
- Обговорює інструменти та практики, необхідні для розробки, тестування й розгортання зразкових застосунків.
Чого ви навчитеся:
- Як працювати з основами об’єктів: писати класи й методи, створювати екземпляри об’єктів, формувати потужні ієрархії класів через наслідування.
- Освоїти розширені можливості об’єктно-орієнтованого програмування, зокрема статичні методи й властивості, керування умовами помилок через винятки, а також створення абстрактних класів і інтерфейсів.
- Дізнатися про нові об’єктно-орієнтовані можливості, представлені в PHP 7, і зрозуміти, чому вони важливі для вашого коду.
- Розуміти та застосовувати принципи проєктування, щоб ефективно використовувати об’єкти й класи у ваших проєктах.
- Дізнатися про патерни проєктування, їхнє призначення, структуру та базові принципи, що ними керують. Відкрийте набір потужних патернів, які можна впроваджувати у власних проєктах.
- Дізнатися про інструменти та практики, які допоможуть гарантувати успішність проєкту: модульне тестування; системи керування версіями, збірка, встановлення та керування пакетами; а також безперервна інтеграція.
Огляд змісту
Про автора ....................................................................................................xxi
Про технічного рецензента ................................................................................xxiii
Подяки .............................................................................................................xxv
Вступ .................................................................................................................xxvii
Частина I: Об’єкти ..................................................................................... 1
Розділ 1: PHP: проєктування та керування ............................................................. 3
Розділ 2: PHP та об’єкти ................................................................................... 9
Розділ 3: Основи об’єктів ..................................................................................... 15
Розділ 4: Розширені можливості ............................................................................ 47
Розділ 5: Інструменти для об’єктів ........................................................................................ 99
Розділ 6: Об’єкти та проєктування .......................................................................... 133
Частина II: Патерни .............................................................................. 155
Розділ 7: Що таке патерни проєктування? Навіщо їх використовувати? .................................... 157
Розділ 8: Деякі принципи патернів .................................................................. 165
Розділ 9: Генерація об’єктів ........................................................................... 179
Розділ 10: Патерни для гнучкого об’єктного програмування ..................................... 211
Розділ 11: Виконання та представлення задач .............................................. 235
Розділ 12: Підприємницькі патерни ........................................................................ 277
Розділ 13: Патерни для баз даних .......................................................................... 327
Частина III: Практика ............................................................................. 375
Розділ 14: Добра (і погана) практика ................................................................ 377
Розділ 15: Стандарти PHP ............................................................................... 385
Розділ 16: PHP: використання та створення компонентів за допомогою Composer ................... 399
Розділ 17: Керування версіями за допомогою Git ................................................................. 411
Розділ 18: Тестування за допомогою PHPUnit ...................................................................... 435
Розділ 19: Автоматизована збірка за допомогою Phing .......................................................... 465
Розділ 20: Vagrant ........................................................................................... 487
Розділ 21: Безперервна інтеграція ................................................................... 497
Розділ 22: Об’єкти, патерни, практика ............................................................. 525
Розділ 23: Додаток A: Бібліографія ............................................................... 535
Розділ 24: Додаток B: Простий парсер ......................................................... 539
Іменний покажчик ..................................................................................................................... 565