PHP vs OO PHP – Какой из них использовать?

Я разрабатываю веб-систему с использованием обычного PHP. Это был мой первый опыт работы с PHP, поэтому код не читается и не очищается. Он смешивает некоторый HTML-код с PHP. Я бы сказал, что я уже сделал половину кода.

Каковы реальные преимущества объектно-ориентированного PHP? Веб-сайт посвящен книгам и авторам книг, используя MySQL и Apache. Так что это не очень сложный сайт.

Реальное преимущество объектной ориентации: ваш код лучше организован, проще в обслуживании, более модульный (и, следовательно, его легче использовать), и, возможно, менее хрупкий (из-за инкапсуляции состояния и реализации и, надеюсь, лучшей безопасности). (Циник во мне также говорит, что, если вы изучаете объектно-ориентированный PHP, вы делаете первый важный шаг для выхода из гетто PHP . Хех. Работал для меня!)

Уже много вопросов от PHPers, перемещающихся в OO на Stack Overflow:

  • Объект PHP ориентирован или нет?
  • Является ли мой PHP-код объектом ориентированным?
  • Изучение PHP-класса

Не говоря уже о том, что существуют zillions объектно-ориентированных учебников PHP. Мое мнение: в принципе, да, если вы пишете PHP, вы, вероятно, должны писать объектно-ориентированный PHP для чего-либо, кроме самых тривиальных приложений. Есть много Rails-подобных фреймворков для PHP, которые облегчат вашу жизнь и помогут вам стать лучшим программистом.

Объектно-ориентированный PHP не отличается процедурным стилем в размере HTML-кода, который вы смешиваете с PHP-кодом. Поэтому, если ваша единственная проблема – это смесь, вы должны искать другие способы, чтобы очистить ваш код. Например, вы можете создавать файлы шаблонов html с заполнителями для своего динамического содержимого и использовать file_get_contents и str_replace для ввода динамического содержимого во время выполнения.

На мой взгляд, мы, PHPers, можем полностью отбросить концепцию Object (экземпляр класса), нам нужен только класс Array и Mode:

Все массивы в начальном режиме поддерживают любую функцию массива как свой метод:

<?php $array1->array_flip(this); ?> 

Используйте «-> mode ()» для проверки минимального набора данных, а затем переключите класс режима:

 <?php $array1->mode('class1', $success); ?> 

Любой класс режима не имеет в нем «-> construct ()», но имеет «-> validate ()» для проверки минимального набора данных.

Массив в режиме все еще может использовать функцию массива как свой метод, но после использования любого из них массив будет переключен обратно в режим базового массива, и нам нужно использовать режим «-> (« класс1 »,« успех »); для переключения режима назад.

Радикальная мысль здесь – ориентированное на данные программирование; нам нужно разделить данные (массив) и активность (метод класса).

Мы могли бы изменить механизм PHP, чтобы избавиться от частей OO (объектно-ориентированного) и поддерживать класс режима. Мы могли бы назвать это MyPHP.

Например: $ array_man1 можно установить в два режима: cls_normal_man и cls_crazy_man:

 <?php $array_man1->mode('cls_normal_man')->normal_method1()->mode('cls_crazy_man')->crazy_method1(); ?> 

если вы действительно хотите использовать программное обеспечение oo, перейдите в Ruby.

OO PHP для меня – подделка. И если у вас уже есть половина кода, сделанного в структурном php, не передумайте.

просто не забудьте сделать код чистым с большим количеством комментариев, чтобы вы могли легко изменить sth в будущем