<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

После прохождения курса Вы без труда сможете создавать любые сайты с использованием фреймворка Yii, причём делать это будете быстро и качественно.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Создаём сокращатель URL. Часть 2.

Создаём сокращатель URL. Часть 2.

Всех с праздником! А сегодня мы продолжаем создавать сокращатель URL, а именно: создадим базу данных, где будут храниться наши ссылки и их код, и главный класс Shortener.

Создание базы данных

Я создам базу данных с именем website

create database website;

А в ней нам нужно создать таблицу. Назовём её, например, links.

create table links(
  id int not null primary key auto_increment,
  url varchar(255),
  code varchar(12),
  created datetime
);

Таблица элементарная, но всё-таки поясню:

  • id - уникальный идентификатор записи, не может быть пустым, автоматически увеличивается
  • url - url, который будет вводить пользователь через нашу форму, может быть достаточно длинным, но, думаю, 255 знаков нам хватит
  • code - краткий код, который будет сгенерирован для каждого url
  • created - просто дата и время, когда создана запись

Выполните этот запрос в консоли или в phpmyadmin, чтобы создать таблицу. Давайте теперь немного поговорим о нашей структуре файлов, она у нас такая:

  • classes
    • shortener.php
  • css
    • style.css
  • index.php
  • shorten.php
  • redirect.php
  • .htaccess

Откроем файл shortener.php и запишем следующее:

<?php
  class Shortener {
   protected $db;

   public function __construct() {
    $this->db = new Mysqli('localhost', 'root', '', 'website');
   }

   public function generateCode($num) {
    return base_convert($num, 10, 36);
   }

   public function makeCode($url) {
    $url = trim($url);

    if(!filter_var($url, FILTER_VALIDATE_URL)) {
     return '';
    }

    $url = $this->db->escape_string($url);

    $exsists = $this->db->query("SELECT code FROM links WHERE url = '{$url}'");

    if($exsists->num_rows) {
     return $exsists->fetch_object()->code;
    } else {
     $this->db->query("INSERT INTO links(url, created) VALUES('{$url}', NOW())");

     $code = $this->generateCode($this->db->insert_id);

     $this->db->query("UPDATE links SET code = '{$code}' WHERE url = '{$url}'");

     return $code;
    }
   }

   public function getUrl($code) {
    $code = $this->db->escape_string($code);
    $code = $this->db->query("SELECT url FROM links WHERE code = '$code'");

    if($code->num_rows) {
     return $code->fetch_object()->url;
    }

    return '';
   }
  }
?>

Вот такой вот немаленький класс у нас получился. Но, несмотря на размер, он довольно таки прост. Давайте разберёмся, что мы тут написали.

У нас есть четыре метода: __construct, generateCode, getUrl и makeCode. В конструкторе мы просто подключаемся к базе данных и записываем её объект в свойство $db, второй метод принимает число и на его основе генерирует какой-то код. Метод getUrl, как и следует из названия, возвращает url из базы данных по коду, который мы передадим в качестве аргумента. Если такой записи нет, то вернётся пустая строка. И вот, мы подошли к самому большому методу в этом классе - makeCode.

В этот метод передаётся url, который затем очищается от пробелов и проверяется на корректность с помощью filter_var. После мы обращаемся к базе данных и возвращаем код, соотвествующий переданному url. Если же кода нет, то мы записываем в базу данных url и дату создания, потом генерируем код с помощью метода generateCode, передав ему id последней вставленной записи, а дальше обновляем запись, вставив туда наш код, и возвращаем его из метода.

На этом я заканчиваю вторую часть по созданию сокращателя URL. Сегодня мы создали класс, который будет делать всю работу, и тем самым прошли уже больше половины пути. Обязательно просмотрите и поймите код, а если есть вопросы, можете задавать их в комментариях.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.