Правильная структура именования для CodeIgniter

Я начинаю свой первый проект CodeIgniter и хочу получить совет до начала. Я немного смущен тем, как работает имя controllerа и моделей.

Если я хочу, чтобы URL-адрес моей компании был http://example.com/Company/view

controller нужно называть Company.php правильно? внутри controllerа компании это будет выглядеть так:

public function viewAll() { $this->load->model('Companymodel'); $this->load->view('templates/header'); $data['result'] = $this->Companymodel->viewAll(); $this->load->view('company/viewAll', $data); $this->load->view('templates/footer'); } 

ok im confused здесь, в строке 4 выше:

 $this->load->model('Companymodel'); 

этот призыв к странице модели компании должен иметь капитал 1-го письма с остальным нижним регистром?

если это правильно, нужно ли файл модели называть Companymodel.php и помещаться внутри папки приложения / моделей?

это плохая практика вызывать controller и моделировать то же самое

пример: Company.php и поместите его внутрь / application / controller /, а затем введите модель под названием Company.php и поместите ее внутри приложения / модели или следует назвать модель Companymodel.php

Я предполагаю, что мой последний вопрос – это соглашение об именах файлов controllerа и модели, и могут ли они быть в верхнем регистре или нет.

URL-адрес

Обычно ваши URL-адреса должны содержать все строчные буквы. Если вы ожидаете прописные буквы, есть шанс, что вы случайно исключите их нижестоящих коллег, хотя они имеют одинаковый URL. Пример: www.example.com/controller/method/param

Контроллеры

Имена classов controllerа должны быть строчными, кроме первой буквы.

  • Если ваш URL-адрес – www.example.com/gallery , имя controllerа – Gallery .
  • Если ваш URL-адрес – www.example.com/admin_folder , имя controllerа – Admin_folder .

Имена файлов controllerа должны совпадать с именем classа, но быть строчными.

  • Галерея :: gallery.php
  • Admin_folder :: admin_folder.php

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

модели

Модели соответствуют большинству тех же конвенций, что и controllerы. Единственное различие заключается в именах модельных методов, которые могут использовать ваше предпочтение капитализации. Поскольку эти методы не привязаны к URL-адресам и вызывается с использованием обычного PHP OOP, вы можете назвать их как хотите.

Рекомендуется загружать модели, используя всю строчную версию. Хотя CI не требуется, он может запутать некоторых пользователей, если они загружают его заглавной буквой, но затем попытаются получить к нему доступ как все строчные (это связано с тем, что собственный PHP чувствителен к регистру с свойствами classа [и вообще переменными] , а не CodeIgniter).

  • Имя classа модели: Users_model (суффикс _model также не требуется, но некоторые люди могут использовать его как личное предпочтение или предотвращать конфликты имен с controllerом Users ).
  • Название файла модели: users_model.php
  • Загрузка модели: $this->load->model('users_model')
  • Имя метода модели (все в порядке): $this->users->getAll() , $this->users->find_by_name($name) и т. Д.

Библиотеки

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

Как и в моделях, рекомендуется загружать библиотеки, используя нижнее имя.

Эти правила одинаковы для библиотек CI (расположенных в application/core и application/libraries , а также в пользовательских или сторонних библиотеках.

Особое примечание: при расширении библиотек CI по умолчанию вступает в игру префикс, определенный в application/config.php . Обычно этот префикс должен быть заглавным, а затем подчеркивать. По умолчанию используется MY_ .

  • Название classа библиотеки: Photos
  • Имя файла библиотеки: Photos.php ,
  • Загрузка библиотеки: $this->load->library('photos')

Помощники

Имена и загрузка помощников – это строчные буквы. Имя файла состоит из имени помощника с добавлением _helper .

  • Имя помощника: url
  • Имя файла-помощника: url_helper.php
  • Вспомогательная нагрузка: $this->load->helper('url')

Заметки

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

Правила в этом ответе для CodeIgniter 2.1.x на момент написания этой статьи. Существует обсуждение Github для версии 3.0 для улучшения и добавление большей согласованности к соглашениям об именах , о которых вы можете прочитать и внести свой вклад, если хотите.

модели / admin.php

  

controllerы / company.php будут включать в себя модель администратора с

 function galleryView() { $this->load->model('Admin'); $numRows = $this->Admin->getPhotoNum(); ... etc 

Чтобы просмотреть галерею, в качестве URL-адреса будет отображаться mysite.com/company/galleryView.

Существует очень хорошая документация и примеры на сайте CodeIgniter

  • Соединение CodeIgniter MSSQL
  • как получить последний идентификатор вставки после вставки запроса в активную запись codeigniter
  • Как написать файл .htaccess для создания маршрутизации URL-адресов CodeIgniters?
  • Ошибка HTTP OPTIONS в Codeigniter от RedSturgeon Restserver и Backbone.js
  • Недопустимые ключевые символы CodeIgniter
  • Загрузка csv в Codeigniter
  • CodeIgniter не может отправлять электронную почту с помощью PHP mail ()
  • Сеанс Codeigniter, прослушивающий вызовы ajax
  • Проверка валидатора конструктора для различных функций
  • Как переписать index.php Codeigniter в Windows Azure
  • Использование предложения Mysql WHERE IN в codeigniter
  • Давайте будем гением компьютера.