PTEST
Рабочая версия скрипта развернута здесь:
http://ptest.i2g.ru/
Задание
###Написать Доску объявлений
Доска объявлений предоставляет возможность пользователям сайта оставлять сообщения на сайте.
Все данные введенные пользователем сохраняются в БД MySQL, так же в базе данных сохраняются данные о IP пользователя и его браузере.
Форма добавления записи на доску объявлений должна иметь следующие поля:
- User Name (цифры и буквы латинского алфавита) – обязательное поле
- E-mail (формат email) — обязательное поле
- Homepage (формат url) – необязательное поле
- CAPTCHA (цифры и буквы латинского алфавита) – изображение и обязательное поле (http://ru.wikipedia.org/wiki/CAPTCHA)
- Text (непосредственно сам текст сообщения, HTML тэги недопустимы) – обязательное поле
Сообщения должны выводится в виде таблицы, с возможностью сортировки по следующим полям: User Name, e-mail, и дата добавления (как в порядке убывания, так и в обратном). Сообщения должны разбиваться на страницы по 25 сообщений на каждой.
Приветствуется создания простейшего дизайна с использованием CSS.
Развертывание
Скачать архив https://mygit.i2g.ru/ptest/snapshot/ptest-master.zip
Настроить любимый веб-сервер на папку public.
Мой конфиг для nginx
server {  
  server_name ptest.i2g.ru;  
  root /mnt/160/sites/ptest.i2g/public;  
  
  location / {  
    try_files $uri /index.php?$query_string;   
  }  
    location ~ ^/index\.php(/|$) {  
        fastcgi_split_path_info ^(.+?\.php)(|/.*)$;  
        include fastcgi_params;  
        fastcgi_param HTTP_PROXY "";  
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
        fastcgi_param PATH_INFO $fastcgi_path_info;  
        fastcgi_intercept_errors on;  
        # PHP 5 socket location.  
        fastcgi_pass unix:/var/run/php5-fpm.sock;  
    }  
  
    location = /favicon.ico {  
        log_not_found off;  
        access_log off;  
    }  
  
    location = /robots.txt {  
        allow all;  
        log_not_found off;  
        access_log off;  
    }  
}  
###MySQL/MariaDB
- Импортировать dump.sqlв базу данных.
- Установить параметры в файле src/start.php
Composer
Чтобы скрипт заработал нужно создать автозарузчик классов при помощи Composer
composer install
Впринципе после этого приложение должно заработать.
По желанию
Для генерации CSS, js и прочей рутины я использую Grunt.
Чтобы его установить нужны следующие команды
cd grunt  
npm install  
cd css  
git clone https://github.com/IgorVBelousov/ShortCSS.git  
git clone https://mygit.i2g.ru/normalize/