Какие фреймворки PHP подходят для приложений только для веб-сервисов?

Я оцениваю фреймворки PHP для нескольких предстоящих проектов с целью использования одной и той же структуры для всех из них. Необычный аспект заключается в том, что они НЕ являются стандартными приложениями на основе браузера, к ним будут доступны специальные приложения, ожидающие использования XML или JSON (в настоящее время не определены).

Большинство фреймворков PHP, таких как Yii, CodeIgniter, CakePHP, похоже, разработаны с разумным допущением, что клиентское приложение будет браузером - например, с помощью файлов cookie для управления сохранением, перенаправления после POST и т.д.

Хотя я уверен, что могу получить любую из вышеперечисленных фреймворков для выполнения этой работы, являются ли какие-либо из основных фреймворков "лучше" подходящими для разработки агностических приложений клиент-приложение?

Ответ 1

Из "больших" (CI, Kohana, Zend, Cake, Symfony). Я думаю, что более новая Zend имеет лучшую поддержку веб-сервисов RESTful, но более ранние версии системы Zend крайне не хватали контроллеров для отдыха. Я создал свой собственный для Zend и просто использовал их.

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

Мой совет - придерживаться рамки, которую вы уже знаете, построить свои собственные контроллеры отдыха (если в настоящее время не хватает). Некоторые базовые функции для вывода вывода и преобразования его в XML, json и т.д. Могут быть созданы, но вы потратите меньше времени, чем пытаетесь изучить новую структуру. Плюс, с biggie, вы не будете зацикливаться на том, чтобы поддерживать базу кода остатка, кому-то надоело идти в ногу с ним.

Ответ 2

На самом деле Recess PHP звучит идеально для этого... его неотъемлемо успокаивает прежде всего.

Обновлено: В последнее время я играю с Slim Framework. Это довольно классный маленький инструмент, который в основном представляет собой PHP-эквивалент Express.js для node. Это чрезвычайно эффективный, легкий и управляемый тестами.

Ответ 3

Symfony2 имеет интересную концепцию, если вы ориентированы на HTTP (и, кроме того, у нее есть и CLI (интерфейс командной строки)).

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

Кроме того, он хорошо протестирован, имеет определенный API и позволяет легко расширять с помощью инъекции зависимостей и так называемых пакетов.

Если вы начинаете новый, и используете PHP, начинайте с symfony2.

Ответ 4

Я рекомендую Zend Framework для нечетных заданий вроде этого, особенно потому, что он был написан таким образом, что вы можете использовать биты и фрагменты, не требуя принятия поведения структуры в целом. Например, в моем приложении я использую часть Zend_Db структуры для ORM- и связанных с базой данных функций, но я использую другие объекты и фреймворки для других частей приложения.

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

Ответ 5

Неужели люди прекратили пользоваться услугами отдыха к 2012 году?

Если вы знакомы с Ruby on Rails Yii PHP framework, стоит заглянуть в нее.

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

Ответ 6

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

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

Весь смысл фреймворков - это обработка общих задач и вещей, которые в противном случае являются утомительными. API REST обычно построен с использованием PHP, поэтому существует множество фреймворков. Лично я бы использовал облегченную структуру, такую ​​как slim, просто для обработки таких вещей, как маршрутизация URI, анализ данных для очистки/очистки и генерация ответов.

У вас есть много таких возможностей: http://davss.com/tech/php-rest-api-frameworks/