Intereting Posts

Перемещение php-проекта в кодовое средство или обновление существующей структуры

Я пытаюсь найти лучший способ обработки проекта php в будущем. Он был построен несколько лет назад на пользовательской основе – в структуре не было строгого MVC … у него просто были контроллеры и представления, а также библиотеки.

С тех пор я добавил дополнительные функциональные возможности, и он начинает чувствовать себя как полный беспорядок, со старым кодом и новым кодом, смешанным и без приличного управления базой данных.

Я изо всех сил пытаюсь решить, какой мой лучший вариант. С одной стороны, я мог бы продолжать исправлять существующую кодовую базу в надежде, что я смогу сделать ее несколько более удобной и будущей, или перейду на codeigniter (примечание: я говорю codeigniter, поскольку у меня есть много опыта с ним).

Вариант Codeigniter, очевидно, означал бы, что мне придется пройти через все, и, несомненно, будет много перекодировки, однако в долгосрочной перспективе это может стоить того.

Был еще один вариант, который я рассматривал, и это была основа Laravel. У меня нет прямого опыта, но я слышал, что Laravel 4 (еще не выпущенный) должен быть превосходным.

Итак, поставив эти три варианта на стол, которые вы бы выбрали и почему? Я ищу убедительные причины, чтобы выбрать один над другим, так как, честно говоря, у меня нет понятия, какой маршрут я лучше всего беру в данный момент!

Короткий ответ: нет .

Теперь немного более длинная версия ..

У меня создается впечатление, что вы смущены, какие проблемы должны решаться. Когда вы используете фреймворк, вы получаете более короткую разработку для простых приложений. То, что вы всегда теряете, – это производительность и, как правило, ремонтопригодность.

Рамки созданы для предоставления вам инструментов для решения простых задач. Это означает, что есть много вещей, которые вам не нужны. И есть также проблемы, которые не решают или даже активно препятствуют вашим усилиям в принятии решения.

Что вам следует делать, а не ..

Обновите свой код.

Если вы долгое время работаете над проектом, у вас будет много уроков, которые вы узнали из этого опыта. Используйте их, улучшив существующую базу кода.

  • если в вашей архитектуре есть недостатки: реструктуризация сломанных деталей
  • если вы не уверены, что-то работает: добавьте unittests
  • если что-то кажется медленным: профиль, который вы кодируете и оптимизируете
  • если вы не знаете, что что-то делает: узнайте и добавьте комментарии

Таким образом, вы улучшите свой проект и свои навыки.

PS
Даже если вы начинаете новый проект, я бы рекомендовал избегать обеих фреймворков. Они оба заполнены плохой практикой и худшим кодом: глобальное состояние во всем мире, процедурное программирование, неправильное толкование MVC, игнорирование принципов и законов ООП.

На самом деле у меня был опыт в этом, так как недавно я перешел на более старый сайт из того, что было по существу модульной установкой Model-View для CodeIgniter (с модульным расширением MX). Не потребовалось слишком много времени и легко, что самая длинная его часть превращала модели в парадигму ActiveRecord CodeIgniter.

Похоже, что у вас даже нет никакого преобразования модели, поэтому я бы сказал, что преобразование в CodeIgniter не должно быть слишком сложной задачей, особенно учитывая ваш опыт работы с ним.

Нет никакого определенного права или ответа – там должны быть инвестиции, сделанные вовремя или сейчас или разбросанные в будущем.

Лично я укусил пулю и перешел в КИ. Если вы боретесь с кодом больше, чем исправляете его, то усилия, которые вы ставите в краткосрочной перспективе, будут стоить этого в долгосрочной перспективе.

В большинстве случаев для получения существующего PHP-приложения в CodeIgniter не требуется много времени, вам просто придется потратить больше времени на повторную организацию вашего кода.

Переключитесь на Laravel и уже совместимы с php v5.3 + с отличным сообществом. Я использовал CI для многих проектов, но сотрудничество с Laravel было одним из моих лучших решений. L3 стабилен и отлично работает, и L4 собирается переопределить использование максимизирующей эффективности php.

Если у вас есть ваша старая система, хорошо структурированная в форме стандартов ООП, тогда вы можете потратить немного времени, чтобы перенести используемые зелья в Laravel, а также объединить супер-функции Laravel, чтобы сэкономить много времени. Например, Laravel использует хорошо структурированный ORM под названием Eloquent и может защелкнуться во всех ваших моделях данных всего за несколько минут. Если вы также посмотрите на активное сообщество, вы будете счастливым человеком, чтобы получить быструю поддержку.