Стабильный, хорошо поддерживаемый PHP-фреймворк с возможностью построения форм и графиков, диаграмм

Я не занимался кодированием PHP в течение нескольких лет и пока еще не использовал фреймворк.

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

PHP-часть проекта будет делать следующее:

  • получать запросы HTTP POST, просматривать базу данных (возможно, MySql, возможно, Sqlite) и возвращать URL-адрес, который он извлекает.

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

  • затем пользователи могут просматривать панель своих данных и действий, которую я создам из базы данных.
  • Мне понадобится приложение администратора для собственного использования, чтобы я мог добавлять/изменять/удалять пользователей и их данные.

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

  • Что-то бесплатное для коммерческого использования (на случай, если я когда-нибудь окажусь настолько глупым, чтобы попытаться брать за это плату), без подвохов, которые означали бы, что мне придется открыть исходный код моего кода (я мог бы еще решить сделать это, но я хочу сохранить свою варианты открыты).
  • Стабильный и хорошо протестированный, с хорошим сообществом поддержки пользователей.
  • Обрабатывает общие функции, такие как вход пользователя в систему, управление сеансом (включая выход из системы по тайм-ауту) и т. д.
  • Обеспечивает хорошую безопасность с минимальными усилиями с моей стороны
  • Возможно, конструктор форм, если какой-либо фреймворк предлагает такую ​​​​вещь, где я могу перетаскивать и «рисовать» свою форму, а затем генерировать для нее PHP-код.
  • Возможно генерация хороших отчетов с графиками, круговыми диаграммами, гистограммами и т.д.
  • На самом деле все, что помогает мне сделать приятный графический интерфейс, поскольку я паршив в этом.
  • Любые другие удобные функции, которые могут сделать его привлекательным, хотя следует также учитывать кривую обучения и то, как это помогает в разработке, ускоряя ее / делая ее менее подверженной ошибкам и более легкой для тестирования и отладки.

Какой фреймворк вы рекомендуете?


Несмотря на присуждение награды, долгие поиски в Google приводят меня к мысли, что Lavarel сейчас имеет преимущество перед Code Igniter. Я решил перенести презентацию и большую часть логики на клиентскую сторону, используя AngularJs, оставив на сервере только тонкий слой доступа к базе данных, к которому будет обращаться Ajax.

Я ни в коем случае не php-разработчик, но быстрый поиск в Google нашел CakePHP . Также я ни в коем случае не являюсь html-разработчиком, но ваша проблема с графическим интерфейсом может быть решена с помощью Bootstrap.
Проверьте Phalcon, мне лень писать подробный ответ (к тому же я на мобильном телефоне), но он должен иметь большинство необходимых вам функций, за исключением диаграмм и построителя страниц с графическим интерфейсом (это не роль фреймворка, и я сомневаюсь, что вы) я найду тот, который предоставляет эти функции), но реальным преимуществом этого является скорость, он очень быстрый по сравнению с другими фреймворками, поскольку он поставляется как расширение C, а не код PHP.

Ответы (2)

Во-первых, я прошу прощения, что не смогу предоставить подробный канонический ответ, необходимый для решения всех проблем. но постараюсь сделать свой ответ очень подробным, насколько смогу. Надеюсь, это будет полезно! Поэтому я предлагаю CodeIgniter. Это мощный PHP-фреймворк с очень небольшими размерами, созданный для разработчиков, которым нужен простой и элегантный набор инструментов для создания полнофункциональных веб-приложений. Кодигнитер .

CodeIgniter подходит вам, если

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

С технической и архитектурной точки зрения CodeIgniter создавался со следующими целями:

  • Динамическое воплощение. В CodeIgniter компоненты загружаются, а подпрограммы выполняются только по запросу, а не глобально. Система не делает никаких предположений относительно того, что может понадобиться помимо минимальных основных ресурсов, поэтому по умолчанию система очень легковесна. События, инициированные HTTP-запросом, а также разработанные вами контроллеры и представления будут определять, что вызывается.

  • Слабая связь. Связь — это степень, в которой компоненты системы зависят друг от друга. Чем меньше компоненты зависят друг от друга, тем более многоразовой и гибкой становится система. Нашей целью была очень слабосвязанная система.

  • Сингулярность компонента. Уникальность — это степень, в которой компоненты имеют узконаправленное назначение. В CodeIgniter каждый класс и его функции очень автономны, чтобы обеспечить максимальную полезность.

CodeIgniter — это динамически создаваемая слабосвязанная система с высокой степенью сингулярности компонентов. Он стремится к простоте, гибкости и высокой производительности в компактном корпусе.

Возможности CodeIgniter

  • Система на основе модели-представления-контроллера
  • Чрезвычайно легкий вес
  • Полнофункциональные классы баз данных с поддержкой нескольких платформ.
  • Поддержка базы данных Active Record
  • Проверка формы и данных
  • Безопасность и фильтрация XSS
  • Управление сеансом
  • Класс отправки электронной почты. Поддерживает вложения, HTML/текстовую электронную почту, несколько протоколов (sendmail, SMTP и Mail) и многое другое.
  • Библиотека обработки изображений (обрезка, изменение размера, вращение и т. д.). Поддерживает GD, ImageMagick и NetPBM.
  • Класс загрузки файлов
  • FTP-класс
  • Локализация
  • Пагинация
  • Шифрование данных
  • Бенчмаркинг
  • Полное кэширование страниц
  • Регистрация ошибок
  • Профилирование приложений
  • Календарный класс
  • Класс пользовательского агента
  • Класс Zip-кодирования
  • Класс механизма шаблонов
  • Класс обратной связи
  • Библиотека XML-RPC
  • Класс модульного тестирования
  • URL-адреса, удобные для поисковых систем
  • Гибкая маршрутизация URI
  • Поддержка хуков и расширений классов
  • Большая библиотека «вспомогательных» функций

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

Поиск в Google, кажется, показывает, что Laravel является главным фаворитом для большинства (и что CodeIgnighter теряет популярность). Любые комментарии?
@Mawg Для меня кажется, что оба находятся на одном уровне, но опять же, это ваш выбор, я могу только предложить, что лучше для вашей работы, но помните, что у каждого из них есть свой набор преимуществ :) Я предложил это, потому что в основном CodeIgniter обещает более высокую стабильность. Также определенно есть большое сообщество, которое использует его, и он принадлежит Технологическому институту Британской Колумбии :)
+1 Я думаю, что мне, возможно, придется попробовать использовать оба, чтобы создать простое приложение, и посмотреть, какое из них мне больше подходит. Я также буду искать сравнения этих двух.

Я думаю, Yii подойдет вам. Библиотека отчетов / отчетов .

Я считаю, что для создания пользовательского интерфейса это часть интерфейсной библиотеки/фреймворка, а не серверной части. Вы всегда можете комбинировать BootstrapFormBuilder , Formoid , Bootply или LayoutIt с любым серверным фреймворком.

Чтобы узнать о Yii, вы можете перейти по этой ссылке .

Вот список других фреймворков php.