Model в CodeIgniter классически sql запросы и Active Record

Октябрь 11th, 2011 § 2 comments § Прямая ссылка

Напомню для запамятовавших Model в парадигме MVC отвечает за работу с источником данных, обычно это MySQL и прочие реляционные БД, хотя сейчас набирают популярность NoSQL БД. Сейчас не об этом в этой заметке покажу, как работать с Model в CodeIgniter т.к. это доставило наибольшие сложности при работе с этим Фреймворком. Начнем с того что у нас есть выбор как исполнять запросы к БД в CodeIgniter первое мы можем пользоваться привычными нам запросами sql вызывая функцию query(‘some query’); Лучше изучать что либо на примере, лучше один раз увидеть чем сто раз услышать. Стоит упомянуть о конвенции, класс модели должен начинаться с большой буквы, имя файла должно соответствовать имени класса в нижнем регистре.


class Blogmodel extends CI_Model

{

public _construct()

{

parent::__construct();

}

public function get_last_entries()

{

$query = $this->db->query('SELECT *FROM posts LIMIT 10');

return $query;

}

public function get_last_post()

{

$query = $this->db->query('SELECT *FROM posts LIMIT 1');

return $query;

}

public function update_record($title,$post)

{

$sql = "INSERT INTO posts(title, post)
 VALUES (".$this->db->escape($title).", ".$this->db->escape($post).")";

 $this->db->query($sql);

 echo $this->db->affected_rows();

}

}

//...

public function SomeFunctionWhereWeUseOurModel()

{

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

$result=$this->Blogmodel->get_last_entries();

foreach($result->result() as $row)

echo $row->title.'<br/>';

foreach($row->result_array() as $row)

echo $row['title'].'<br/>';

$result=$this->Blogmodel->get_last_post();

$title=$result->row();

echo "our last post ".$title->title;

$title=$result->row_array();

echo "our last post ".$title['title'];

}

Continue reading “Model в CodeIgniter классически sql запросы и Active Record” »

Создание библиотеки для CodeIginter

Сентябрь 22nd, 2011 § 1 comment § Прямая ссылка

При написании своего не большого проекта понадобилась сделать простую фичу вроде того если пользователь авторизован то имеет доступ к странице, а нет так делаем редирект.  Подумал, что каждый раз писать проверку в каждом методе контроллера это не есть гуд. Сначала мысль пошла в направлении создать статический метод в контроллере и обращаться к нему из всех остальных, но не тут – то было, нельзя. Чутка по-гуглив нарисовалось два решения, ставить HMVC  либо писать библиотеку. Я выбрал последнее. Как оказалось это совсем не сложно


class Authlib {
 public function Authlib()
 {
 $this->CI = & get_instance();
 $this->CI->load->helper('url');
 $this->CI->load->library('session');
 }
 public function isLogged()
 {
 if(!isset($this->CI->session->userdata['auth']))
 redirect (base_url(),'refresh');
 }
 private $CI;
}

Внутри контроллера при каждом вызове пропишем эту строку и тогда если наш пользователь не авторизован он будет ловить редирект


$this->authlib->isLogged();

Что бы иметь доступ к библиотеке из конторолера есть два способа, загрузить его в autoload.php либо явно загружать каждый раз в конторолере, я выбрал сразу, мне кажется так удобнее.


$autoload['libraries'] = array('database','session','authlib');

Вот такой просто способ создания либ за более детальным описанием можно обратится к документации тут

.htaccess для CodeIgniter

Сентябрь 12th, 2011 § 0 comments § Прямая ссылка

Пришлось намучаться, для того что бы правильно работал роутинг на связке Windows+XAMPP+CodeIgniter. Привожу работающий пример для .htaccess CodeIgniter. Мне помог. По работающим я понимаю, когда вы можете обратиться к своему контроллеру http://localhost/codeigniter/signup вместо http://localhost/codeigniter/index.php/signup (имейте ввиду, что это для примера у вас будет другой контроллер и адрес, главное чтобы идея была ясна). Первою очередь удостоверьтесь, что Apache подключает mod_rewrite это можно сделать в xampp/apache/conf/httpd.conf проверяем, закомментирована ли загрузка (комментарии в конфиге Apache обозначаются символом #), если да то убираем и перезагружаем Apache что бы изменения вступили в силу.

Следующим шагом создаем файл .htaccess в корне CodeIgniter’а (у меня не получилось создать на прямую этот файл, так что можно скопировать его, откуда нибудь и заменить содержимое), прописываем следующие конфигурации


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

Какую IDE выбрать для PHP

Май 23rd, 2011 § 0 comments § Прямая ссылка

Ну так уж получилось, что по долгу службы пришлось заниматься php. Хочу поделится опытом, разработки, но я не буду рассказывать о функциях стилях етц. Расскажу лучше о том как облегчить себе жизнь. Сразу оговорюсь что данная заметка больше посвящается тем людям которые пишут на php ис под Win (да такие еще есть).

Continue reading “Какую IDE выбрать для PHP” »

Смотреть фильмы онлайн