Я разрабатываю веб-систему с использованием обычного PHP. Это был мой первый опыт работы с PHP, поэтому код не читается и не очищается. Он смешивает некоторый HTML-код с PHP. Я бы сказал, что я уже сделал половину кода.
Каковы реальные преимущества объектно-ориентированного PHP? Веб-сайт посвящен книгам и авторам книг, используя MySQL и Apache. Так что это не очень сложный сайт.
Реальное преимущество объектной ориентации: ваш код лучше организован, проще в обслуживании, более модульный (и, следовательно, его легче использовать), и, возможно, менее хрупкий (из-за инкапсуляции состояния и реализации и, надеюсь, лучшей безопасности). (Циник во мне также говорит, что, если вы изучаете объектно-ориентированный PHP, вы делаете первый важный шаг для выхода из гетто PHP . Хех. Работал для меня!)
Уже много вопросов от PHPers, перемещающихся в OO на Stack Overflow:
Не говоря уже о том, что существуют 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 в будущем