Мне нужно по-разному зацикливать множество массивов и отображать их на странице. Массивы генерируются классом модуля. Я знаю, что лучше не включать функции в «представления», и я хочу знать, куда вставить файл функций.
Я знаю, что могу «расширить» помощников, но я не хочу расширять помощников. Я хочу создать помощника с помощью моих функций цикла. Давайте назовем его loops_helper.php
php
codeigniter
codeigniter-helpers
Джонатан
источник
источник
Ответы:
Помощник CodeIgniter - это файл PHP с несколькими функциями. Это не класс
Создайте файл и вставьте в него следующий код.
Сохраните это в приложение / помощники / . Мы будем называть это "new_helper.php"
Первая строка существует, чтобы убедиться, что файл не может быть включен и запущен за пределами области действия CodeIgniter. Все после этого говорит само за себя.
Использование помощника
Это может быть в вашем контроллере , модели или представлении (не желательно)
Если вы используете этот помощник во многих местах вы можете иметь его автоматически загружаться при добавлении его в файл конфигурации автозагрузку , т.е.
<your-web-app>\application\config\autoload.php
.-Mathew
источник
$this
как свойство ... Все, если вы хотите, конечно.cool_helper
), и, если вы забудете об этом и вызовете$this->load->helper('cool_helper')
его вручную после его автоматической загрузки, вы получите «уже определенную» ошибку PHP или что-то в этом роде. Это предотвращает загрузку одного и того же кода дважды (это похоже наinclude_once()
функцию PHP, но для помощников CodeIgniter, чтобы избежать проблем). В основном, перевод немного: если функция не существует, это означает, что помощник не был загружен раньше. Давайте определим это.Некоторый код, который позволяет вам использовать экземпляр CI внутри помощника:
источник
Ну у меня работает только добавление текста
"_helper"
после в файл php, например:А для автоматической загрузки помощника в папку aplication -> файл autoload.php добавьте в массив имя помощника без "_helper", например:
И с этим я могу использовать все функции помощника
источник
_helper
в конце имени файла.Для создания нового помощника вы можете следовать инструкциям The Pixel Developer , но я советую не создавать помощника только для логики, требуемой определенной частью конкретного приложения. Вместо этого используйте эту логику в контроллере, чтобы установить для массивов их окончательные предполагаемые значения. Получив это, вы передаете их в представление с помощью класса Template Parser и (надеюсь) вы можете сохранить представление чистым от всего, что выглядит как PHP, используя простые переменные или пары переменных тегов вместо echos и foreachs. то есть:
вместо того
Еще одним преимуществом этого подхода является то, что вам не нужно беспокоиться о добавлении экземпляра CI, как если бы вы использовали пользовательские помощники для выполнения всей работы.
источник
Создайте файл с именем вашего помощника в / application / helpers и добавьте его в файл конфигурации автозагрузки / загрузите его вручную.
Например, поместите файл с именем user_helper.php в / application / helpers с таким содержимым:
Теперь вы можете либо загрузить помощника через него,
$this->load->helper(‘user’);
либо добавить его в config application / config / autoload.php .источник
Просто определите помощника в каталоге помощника приложения, затем вызовите из вашего контроллера просто имя функции, как
в контроллере загрузи помощника
выход будет
источник
Чтобы получить элемент из вашего файла конфигурации, используйте следующую функцию:
$this->config->item('item name');
Где имя элемента - индекс массива $ config, который вы хотите получить. Например, чтобы выбрать язык, вы сделаете это:$lang = $this->config->item('language');
Функция возвращает FALSE (логическое значение), если элемент, который вы пытаетесь получить, не существует.Если вы используете второй параметр функции $ this-> config-> load для назначения элементов конфигурации определенному индексу, вы можете получить его, указав имя индекса во втором параметре $ this-> config- > функция item (). Пример:
// Загружает файл конфигурации с именем blog_settings.php и назначает его индексу с именем blog_settings
// Получить элемент конфигурации с именем site_name, содержащийся в массиве blog_settings
// Альтернативный способ указать тот же элемент:
$ site_name = $ blog_config ['site_name'];
источник