Модель Codeigniter против библиотеки, которую использовать - PullRequest
0 голосов
/ 29 сентября 2011

есть функция get_user_group_ids ($ user_id), она возвращает все группы, к которым принадлежит пользователь. это пингует пакетную таблицу и получает все batch_ids. Затем AN пингует таблицу групп и получает group_ids, соответствующий batch_ids

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

, поскольку это обычная функция, я сомневаюсь, стоит ли создавать общую библиотеку или модель

Ответы [ 2 ]

1 голос
/ 29 сентября 2011

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

0 голосов
/ 29 сентября 2011

Я был в похожей ситуации, когда мне нужно было поделиться моделью (абстрактной коллекцией методов) между фреймворком (в моем случае CakePHP) и сценариями оболочки для пакетных заданий.Для этого я обнаружил, что самым простым способом было создать модель CakePHP, как и любую другую модель, КРОМЕ этого не расширяло базовый (родительский) класс каркасной модели (CI_Model в вашем случае).Преимущество этого состояло в том, что я все еще мог «загружать» (инициировать) класс из CakePHP, используя те же соглашения, что и для любой другой модели платформы, но я мог использовать ту же модель (файл actall) в пакетных сценариях оболочки без необходимостизагрузить что-нибудь дополнительно.

Я почти уверен, что то же самое возможно в CI (хотя я не большой пользователь CI):

# the model definition /application/models/CustomModel.php
class CustomModel {
    public function __construct() {} # ...
    public function get_user_group_ids( $id ) {} # ...
}


# from inside the a controller method:
$this->load->model( 'CustomModel' );
$this->CustomModel->get_user_group_ids( $id ); # ...


# from inside the shell scripts:
require_once( YOUR_CI_PATH . '/application/models/CustomModel.php' );
$obj = new CustomModel();
$obj->get_user_group_ids( $id ); # ...

Надеюсь, это поможет, ура

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