Резидентное решение RESTful, используемое с backbone.js … в PHP?

Я предоставлю это, сказав, что я дрянной программист, я уверен, что то, что я хочу сделать, может быть сделано в 10 строках узла или Rails или что-то еще, но PHP – это то, что у меня есть.

Итак, я надеюсь найти простую PHP-библиотеку, которая обертывает вызовы базы данных в API, который похож на модель RESTful.

У меня не было большого успеха, пытаясь найти такую ​​вещь – поиск PHP CRUD или PHP REST открывает несколько миллионов страниц, и я не знаю, как их фильтровать.

Я действительно стараюсь, чтобы все было здесь просто, я не хочу, чтобы большая платформа вроде Zend или что-то в этом роде. Модели, с которыми я имею дело в Backbone, действительно просты. Я просто хочу отправить GET , скажем, /notes/3 или POST s в /notes и т. Д., И PHP сделает правильную вещь в базе данных.

Возможно, я слишком много спрашиваю, но мне кажется, что это то, что предоставляют другие среды, такие как Rails. Какие-либо предложения? ТИА …

    EDIT Ноябрь 2018: Хотя я бы не стук CodeIgniter, в настоящее время Laravel (в настоящее время 5.5) является основой, которую я использую.

    Вот хорошая статья, в которой излагаются причины, по которым я использую Laravel.

    Чтобы начать прыжок, я рекомендую Laracasts . Это обучающая услуга по подписке на видео, которая подробно рассказывает о том, как использовать Laravel (и другие связанные с веб-разработчиками вещи).

    ОРИГИНАЛЬНЫЙ ОТВЕТ:

    Codeigniter , для меня, является самой простой из Rails-подобных фреймворков. Это голые кости, и вы можете легко создавать CRUD-приложение с нуля.

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

    Вы можете просмотреть документацию на своем веб-сайте. Он очень прост в использовании, пока вы помните, что навигация скрыта в верхней части каждой страницы. : D

    Вы понимаете, как CRUD работает внутри страны? С точки зрения PHP это может быть так же просто, как наличие оператора switch над каждой возможностью вызова REST.

    См. Эту страницу здесь: http://www.codethinked.com/building-epic-win-with-backbone-js

    Перейти к разделу «Подключение к серверу».

    Ваш PHP-скрипт просто должен удовлетворить эти требования.

    Простой код прототипа:

     switch($_SERVER['REQUEST_METHOD']){ case 'POST': // create new item break; case 'GET': // get item(s) break; case 'PUT': // update item break; case 'DELETE': // delete item break; } 

    Вам также потребуется настроить файл .htaccess следующим образом (для обращения к несуществующим URL-адресам):

     # Turn on rewrite engine and redirect broken requests to index <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php [L,QSA] </IfModule> 

    URL-адрес, такой как http://mysite.com/1 , не существует, поэтому вам нужно маршрутизировать.

    Изменить: если вы планируете использовать PUT или DELETE в HTML-формах, забудьте об этом. Начиная с написания этого, он не был принят в HTML5, и почти все браузеры не поддерживают это. Мое «исправление» этого – использовать GET для запросов GET и POST для всех остальных (само сообщение POST и DELETE ). Пример:

     <form action="POST" action="/users/5"> <input type="hidden" name="method" value="DELETE"/> <button>Delete User #5</button> </form> 

    Это, однако, не проблема с AJAX, поскольку, по-видимому, вы можете установить метод XMLHttpRequest на все, что хотите, без проблем.

    Для PHP существует множество restfull фреймворков, посмотрите здесь и здесь .

    Мне лично нравится безмасляная структура, но для этого вам нужен PHP 5.3. Также есть много поддержки для Тоника и Пересадки, кажется довольно интересным.

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

    Вы должны найти подходящий вариант.

    Также, если у вас уже есть ваши запросы mysql, вы можете преобразовать результаты mysql непосредственно в json следующим образом:

     function recordSetToJson($mysql_result) { $rs = array(); while($rs[] = mysql_fetch_assoc($mysql_result)) { // you don´t really need to do anything here. } return json_encode($rs); } 

    После этого довольно легко общаться с URL-адресами.

    From: Преобразование записи MySQL в строку JSON в PHP

    Вы можете использовать silex https://github.com/fabpot/Silex простую структуру на основе симфонии 2. С помощью Silex вы можете легко маршрутизировать и отображать действие.

    У вас есть доступ к основному элементу CRUD, и вы можете вызвать функцию с компонентом URL.

    В документации есть несколько примеров: http://silex-project.org/doc/usage.html

    новое решение REST api

    примеры http://www.apifysnippets.com/

    код https://github.com/apify

    учебник http://blog.fedecarg.com/2011/09/11/building-a-restful-web-api-with-php-and-apify/

    ОБНОВИТЬ:

    другое решение для отдыха для PHP: http://luracast.com/products/restler/

    🙂

    вы можете посмотреть на Slim:

    http://www.slimframework.com/

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