можно ли заставить codeigniter работать с другим фреймворком? - PullRequest
2 голосов
/ 22 апреля 2010

ситуация такая.

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

Ситуация такова, что приложение адресной книги становится все больше и больше, и я чувствую, что лучше использовать CodeIgniter для кодирования его с помощью MVC.

Интересно, смогу ли я использовать codeigniter, затем каким-то образом дать ему доступ к методам контроллера.

например. в контроллере есть некоторые функции, которые вы можете вызвать через веб-браузер.

public function create_contact($information) {..}

public function delete_contact($id) {..}

public function get_contact($id) {..}

однако, они могут быть вызваны только через веб-браузер. как я могу позволить своему клиенту иметь доступ к этим функциям, таким как API?

тогда в своем приложении он может использовать:

$result = $address_book->create_contact($information);
if($result) {
    echo "Success";
}

$contact = $address_book->get_contact($id);

таким образом, мои методы контроллера обрабатывают вход и выход с помощью моделей. не будет никаких представлений, потому что я просто должен вернуть данные / результат из моделей. и он может просто использовать мои функции "API".

возможно ли это?

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

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

спасибо

1 Ответ

3 голосов
/ 22 апреля 2010

MVC, кажется, рассеялся в своем определении. Это определение, которое я предлагаю, должно быть идеальным для вас.

Модели - это то место, где вы строите свой бизнес-конец приложения. Такие операции, как create_contact, delete_contact и get_contact, принадлежат на уровне модели. Уровень модели - это то, что создает API вашего приложения и должно быть полностью независимым.

Рассматривайте контролеров исключительно как кукловодов пользователя. Контроллеры принимают пользовательский ввод - проверка, санитария и все остальное может быть сделано в другом месте - и вызывает API, который вы уже настроили на уровне модели. Кроме того, контроллеры затем определяют, какое представление использовать - каким бы сложным или простым не был ваш уровень представления.

Уровень представления обычно не сложен. Пока вы используете только операции чтения в представлении, все будет в порядке.

Чтобы уточнить, если пользователь хочет создать новый контакт, контроллеру может понадобиться метод с именем create_contact, который принимает соответствующий ввод. Однако фактическая операция создания контакта должна выполняться на уровне модели. Это позволит вашему другому разработчику повторно использовать эту же операцию в совершенно другом приложении, загрузив вашу модель, которая уже была разработана как независимый объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...