<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

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

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

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

Подписавшись по 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):

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