В настоящее время я пытаюсь найти лучшее решение / технологию для построения нашей ERP.
Наша сфера деятельности очень специфична, ни один ERP на рынке не соответствовал бы нашим потребностям (или 50% из них), поэтому мы решили пойти на собственное решение.
Нам посоветовали выбрать клиент-серверное решение (.net + WPF), но результат первой поставки ниже наших ожиданий.
В настоящее время мы думаем о запуске в php (с той же базой данных SQL Server) и задаемся вопросом:
Наши основные проблемы:
Хотя этот вопрос основан на советах и не очень подходит для этого сайта. Я сделаю все возможное, чтобы ответить на ваши вопросы.
Подойдет ли php framework (Symfony, Laravel)? Мы должны
иметь свободу, чтобы обеспечить ремонтопригодность с течением времени
Было бы, Laravel основан на Symfony и имеет больше готовых решений. С Symfony у вас больше свободы.
Будет ли хорошей идеей интерфейсная среда (Bootstrap, Foundation, Materialze) Или мы должны делать все с нуля
Вы можете использовать любую из этих сред шрифтов, однако они регулярно обновляются, следуя тенденциям. Обновление инфраструктуры конца шрифта означает обновление всех ваших представлений. Однако вы можете отказаться от обновления.
Если мы будем использовать аддоны (такие как UI Kits, JQuery-скрипты), мы со временем умножим риски совместимости
jQUERY существует с 2006 года и вряд ли пойдет куда-нибудь в ближайшее время. Это посоветовало бы безопасно использовать.
В настоящее время я работаю в компании, которая сделала ERP с нуля 8 лет назад. У них была похожая работа, и ни одна ERP-система не соответствовала потребностям.
Итак, 8 лет спустя (сегодня), ERP все еще используется каждый день, но его невозможно поддерживать. Php (и технология в целом) развивается так быстро, что вы не можете тратить время (и деньги) на его развитие.
Версия сервера
Сбои безопасности
…
Я рекомендую использовать «безопасный» фреймворк с:
долгосрочная поддержка
Простая система миграции между версиями (что означает, что вы можете легко развить свой erp)
Так что да, использование фреймворка — это решение imo. И Symfony кажется самым безопасным. Сначала вам нужно научиться правильно его использовать, но после этого вы сможете делать с ним все, что захотите. Более того, вы можете найти помощь везде на этой основе. У этого есть сильное сообщество, которое является важной силой.
В фронт-офисе Bootstrap и JQuery тоже в безопасности. Bootstrap также имеет сильное сообщество, и jQuery не работает над версиями.
Я работаю над решением ERP, и все, что я могу, это рассказать вам о том, как мы это делаем:
Я действительно должен голосовать, чтобы закрыть это — это и слишком широко и прежде всего основано на мнении.
Если вы хотите разработать веб-приложение с использованием Java, C или C #, тогда очень важна инфраструктура. Но с PHP это совсем другая история — вы начинаете с языка, специально разработанного для этой цели, который поставляется с богатой библиотекой инструментов от одного поставщика. Кроме того, если вы разрабатываете на платформе Linux, то инструменты разработки и платформа все поставляются под одним провайдером для управления исправлениями. Как только вы начинаете добавлять сторонние компоненты, проблема становится гораздо сложнее.
По всей видимости, проекты с открытым исходным кодом, кажется, процветают и преуспевают, когда выпускают частые релизы. Для коммерческого программного обеспечения регулярные выпуски важны для генерирования потоков дохода. Когда продукт закончен в разработке, кажется, что он закончен на рынке. Рассмотрим фунт против гапрокси.
IME качество кода, которое вы можете скачать из интернета, сильно различается. К сожалению, популярность не всегда приравнивается к качеству (но цена тоже мало связана). Часто программисты слишком сосредоточены на предоставлении функциональных возможностей, чтобы учитывать безопасность, производительность и масштабируемость. Действительно, кажется, существует мнение, что добавление большей функциональности в инфраструктуру дает ей некоторое преимущество над другими продуктами (больше функциональности = больше сложности = больше ошибок = меньше безопасности + труднее исправить).
Проблема, специфичная для PHP-фреймворков, заключается в том, что большинство людей стремятся быть всем для всех (более сложными) — обеспечение абстракции сеанса, шаблонов, абстракции базы данных, шаблонов, маршрутизации … Существуют некоторые исключения высокофокусированных инструментов (например, smarty для шаблонов, метабаза или AdoDB для абстракции базы данных, jQuery для взаимодействия с DOM), которые сосредоточены на выполнении одной вещи и выполнении ее хорошо.
После того, как вы начнете добавлять сторонний код в вашу систему, вам необходимо обеспечить методы, обеспечивающие актуальность кода — но стоимость его предоплата — добавление второго, третьего, четвертого … пакета оказывает гораздо меньшее влияние, чем добавление первый (при условии, что вы правильно внедрили процесс управления ресурсами и развертыванием). Использование composer помогает (но далеко не решает проблему) основной проблемы.
Да, вы столкнетесь с проблемами, для решения которых другие люди написали. Использование (хороших) фреймворка или библиотеки, вероятно, сэкономит затраты на начальном этапе проекта (как только вы столкнетесь с необходимостью ускорить работу вашей команды разработчиков).
Эти структуры уже хорошо организованы, что означает, что может быть трудно делать с ними все, что мы хотим
Я полагаю, что если они хорошо организованы, вам будет проще делать с ними все, что вы захотите!
Но взгляните на SO — часто люди пишут вопросы, спрашивающие, как мне сделать xyz с CakePHP / Falcon / CodeIgniter / Laravel. В большинстве случаев то, что они просят, будет легче сделать без рамки, а не через рамки.
Я мог бы продолжить, но этот ответ уже слишком длинный.
Там нет ответа на ваш вопрос. Если бы это было так, это зависело бы от множества других факторов, таких как наличие навыков, склонность к риску, бюджет ….
Если вы решили использовать каркас (или фреймворки), тогда подумайте о построении системы вокруг микро-сервисов и (если это практически возможно) избегайте использования фронт-контроллера фреймворков. Это уменьшит вашу зависимость от фреймворка, если вам когда-нибудь понадобится его реинжиниринг.