Перехід від однієї структури PHP до іншої


10

Я працюю з веб-компанією, яка наближається до того, коли, ймовірно, буде потрібно переосмислити продукт як V2 - через переростання деяких його основ і принципів V1, які були вбудовані практично у все, починаючи від моделі даних до користувальницькі інтерфейси. З різних причин ця еволюція може включати міграцію з CakePHP (за допомогою якої був побудований V1) на Symfony або Zend.

Я хотів би попросити досвідчених поглядів на те, як люди могли б здійснити такий перехід для веб-сайту, який має значний трафік та приносить дохід. Я не хочу відкривати дискусію щодо експертів різних фреймворків PHP або чому ця міграція може знадобитися. Швидше, мені було б дуже цікаво почути, чи є якісь практичні альтернативи, по суті, побудувати V2 з нуля поряд з V1 на пару місяців - і зафіксувати дорогоцінний час кодування протягом тривалості цього інтенсивного періоду. Прикладом такої альтернативи може бути міграція програми частинами протягом більш тривалого періоду часу.

Буду вдячний за будь-які погляди людей, які, можливо, керували або брали участь у таких переходах.

Заздалегідь спасибі.

Відповіді:


2

Якщо це комерційна програма, яка займається вашою компанією, вам може бути краще пройти без сторонніх програм. Тоді, коли настає час для v3, ви більше не будете стикатися з цією ж проблемою. І ви ніколи не опинитесь у ситуації, коли вам доведеться продовжувати коригувати свій код у відповідь на оновлення в рамках. Рамки чудово підходять для швидкої роботи та роботи, але якщо це щось а) основне для вашого бізнесу і b) підтримується протягом тривалого періоду, цінність рамки зменшується.


1
Спасибі - корисна перспектива, хоча рамки полегшують життя щодо такої кількості речей, що важко розважитись ідеєю не використовувати їх. Вони також можуть бути налаштовані, і не завжди їх потрібно оновлювати, якщо немає справжньої необхідності (наприклад, вразливості безпеки, відсутність підтримки для X тощо). Приймаючи цю відповідь, оскільки це дійсно стосується "рішення", а не намагатися вирішити, чому може знадобитися рамковий комутатор.
Том

1
Ця відповідь зовсім не є рішенням.
Джеймс

6

Вивчіть нову рамку дуже добре спочатку та переконайтеся, що вона буде відповідати вашим потребам, і що ви справді вподобаєте парадигми нового фреймуворку. Вам доведеться викинути багато коду, і це нормально. Важливим є те, що ви використовуєте новий фреймворк таким, яким він мав бути використаний, використовуючи в повній мірі його функції, а не прив'язуючись до способів мислення зі своїх старих рамок. Не намагайтеся використовувати Zend "шляхом CakePHP" *

Наприклад, коли я перейшов до використання фреймворку MVC від попередніх, що не є MVC, я не зрозумів, як повинні працювати моделі, види та контролери, і я написав жахливий шукаючий код, оскільки не зрозумів новий спосіб робити речі. Вам буде краще дотримуватися старого нижчого фреймворку, ніж погано написаний додаток на кращій основі.

* Я ні з ким не знайомий, тому не знаю, наскільки вони схожі / порівнянні.


+1 дляDon't try to use Zend "the CakePHP way
Тим повідомлення

ви знаєте, коли люди кажуть "+1", вони зазвичай фактично дають +1, голосуючи відповідь;)
GS

Вибачте, інтернет-гикавка. :) TCP над голубом-носієм тут.
Tim Post

Дякую за корисну відповідь. Я бовтався як в Zend, так і в CakePHP, і хоча я згоден з вашим коментарем, я в принципі не можу "прийняти" його, коли це не практичний досвід.
Том

5

Перше, що слід врахувати, це те, що переписувати виріб з нуля - це те, що ніколи не слід робити . Це особливо вірно , коли поточна версія вже робить вас гроші. В основному, ви збираєтесь витратити 6 місяців часу, просто щоб повернутися туди, де ви були 6 місяців тому. Тільки тепер у вас є більше помилок (або, принаймні, різних помилок), знову введені помилки, які вже були виправлені в старому коді, і ви на півроку позаду, де ви могли бути, якби ви були додавання функцій до старої бази коду.

CakePHP, Zend та Symphony багато в чому однакові (тобто всі вони є в стилі MVC в рамках PHP), тому я не впевнений, якою перевагою ви мали б перейти від одного до іншого. У наборі функцій, безумовно, є відмінності, але чи варто дійсно весь цей час повертати себе назад? За скільки часу ви витратили б переписання з нуля в Zend чи що завгодно, чи могли б ви витратити стільки ж часу, додавши потрібні функції до торта?

На мою думку, вам краще буде з часом повільно переробляти наявний код, а не починати повністю з нуля з новою рамкою.

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


Саме те, що я думав. Тут немає сенсу переписувати, бо, мабуть, немає вагомих випадків, що це буде економічне рішення.
EricBoersma
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.