Статьи

Начало работы с PHP Framework Codeigniter

Я всегда работал с ядром PHP и всегда не хотел использовать любую CMS (Joomla, Drupal и т. Д.). По совпадению у меня никогда не было возможности поработать над любой из фреймворков в PHP. Но в текущем проекте на работе мы решили использовать CodeIgniter .

CodeIgniter — это легковесная платформа с открытым исходным кодом для веб-приложений. Короче говоря, он дает вам структуру каталогов правильного шаблона MVC вместе с небольшим собственным встроенным механизмом шаблонов. Шаблон MVC помогает разработчику разделить бизнес-логику и уровень представления. Это требует очень минимальной настройки, в отличие от знаменитого PHP фреймворка Zend . Zend в основном используется для разработки корпоративных приложений и представляет собой обширную платформу, что усложняет процесс обучения. С другой стороны, CodeIgniter прост в настройке и более прост в освоении.

Давайте начнем с CodeIgniter

Конечно, первым шагом является загрузка кода codeigniter. Вы можете скачать последнюю стабильную версию codeigniter по следующему адресу http://codeigniter.com/downloads/ . Это будет сжатый файл (zip-файл), который будет загружен, просто распакуйте его и сохраните в папке, скажем codeigniter . Убедитесь, что вы храните его в каталоге htdocs или веб-сервера.

Не время настраивать кодигнитор, с какими начальными настройками начать работать. Для этого откройте файл config.php в вашем любимом редакторе. Файл находится в каталоге system / application / config . Вы увидите массив $ config, в котором хранится вся информация о конфигурации, мы изменим только следующие значения и оставим все как есть.

/*
|--------------------------------------------------------------------------
| Base Site URL
|--------------------------------------------------------------------------
|
*/
//don't forget the TRAILING slash (/)
$config['base_url']	= "http://localhost/codeigniter/";

Поверь мне, это все, с чего можно начать. Некоторые блоги / сайты имеют много изменений в этом файле, но вы можете поиграть с ними при необходимости. Вы можете многое изменить в своей заявке из этого файла. Как вы можете хранить информацию о сеансе в базе данных, просто установив config var $ config [‘sess_use_database’] в значение TRUE , которое по умолчанию FALSE . Вы также можете изменить имя таблицы сеанса с « ci_sessions » по умолчанию на любое другое .

Поскольку ни одно из веб-приложений не работает без базы данных, позвольте мне показать вам, как настроить базу данных в этой настройке. Я решил рассказать об этом в следующем уроке, но так как это довольно просто, давайте сделаем это. Для настройки базы данных откройте файл database.php, который находится в том же каталоге, что и файл config.php, т.е. system / application / config . Теперь измените значения следующих ключей массива с фактическими значениями вашего сервера MySQL.

$active_group = "default";
$active_record = TRUE;
 
$db['default']['hostname'] = "localhost";
$db['default']['username'] = ""; //database username
$db['default']['password'] = ""; //database password
$db['default']['database'] = ""; //name of the database
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = ""; //any table prefix, if you want to keep one
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";

 

Как видите, конфигурация базы данных также была простой. Теперь пришло время разработать простое приложение с использованием инфраструктуры CI. В самом начале этого поста я упоминал, что CodeIgniter предоставляет структуру шаблона MVC, поэтому каждая часть имеет отдельную папку. Давайте для начала создадим простой класс контроллера .

Для этого давайте создадим класс с именем Hello, который будет записан в файл с именем hello.php , который хранится в папке system / application / controllers / . Содержимое файла может быть: (у вас может быть другой класс, ведь это всего лишь класс PHP).

class hello extends Controller
{
  function  __construct()
  {
    //call parent constructor
    parent::__construct();
  }
 
  function index()
  {
    $output['header'] = "My page's header";
    $output['content'] = "Here is the content of the webpage";
    //load from from the system/application/views/hello.php
    $this->load->view('hello',$output);
  }
}

Рассекать код

Теперь давайте разберемся код за строкой. Это класс контроллера с именем hello, который расширяет родительский класс по умолчанию, называемый Controller. Расширение класса Controller облегчает выполнение этого контроллера. Конструктор этих вызовов просто вызывает загрузку конструктора родительского класса, который, очевидно, является контроллером. Далее идет индекс (); функция, которая имеет особое значение в рамках CI. Если он присутствует в контроллере, он выполняется автоматически, когда контроллер загружается / выполняется.

Теперь мы выводим данные , используя вид часть шаблона MVC. Если вы заметили, что приведенный выше код загружает представление с именем hello, которое хранится в папке system / application / views /. Имя файла должно совпадать с именем контроллера. И данные предоставляются в виде массива, где header, content  — переменные шаблона, как показано ниже в hello.php

<html>
  <head>
    <title>My first CodeIgniter Controller and View</title>
  </head>
  <body>
    <h1><?php echo $header ?></h1>
    <p><?php echo $content ?></p>
  </body>
</html>

 

Приведенное выше представление отображает данные, которые передаются вызывающим контроллером. Теперь попробуем проверить, все ли работает так, как мы ожидали, фу! Откройте браузер и нажмите

Http: //localhost/codeigniter/index.php/hello/ 

Если все хорошо, вы должны увидеть веб-страницу с заголовком и содержимым тела, как указано в контроллере. Интересно, как это получилось сделать? CodeIgniter предоставляет очень хороший механизм маршрутизации на основе REST. URL-адрес позволяет вызывать определенный контроллер и метод изнутри контроллера. Но если вы заметили, в приведенном выше URL мы упомянули только имя контроллера, т.е. hello, а не index имени функции (). Как упоминалось ранее, это связано с тем, что index (); Функция вызывается автоматически, если она существует. Если бы это была другая функция с именем render, то приведенный выше URL был бы изменен на

Http: //localhost/codeigniter/index.php/hello/render/

Приведенный выше URL, который теперь вызывает render (); функция от Привет контроллера.

 

CodeIgniter было легко, нет? Если вы думаете, что это было сложно, просто повторите шаги, и я уверен, что вы поймете. Поскольку CI — самая простая структура, она позволяет очень быстро начать разработку.

Счастливого развития!

Оставайтесь в цифре!