Фреймворки используются для того, чтобы не писать и не изобретать заново банальные вещи, вроде работы с БД, обработки HTTP-параметров, организации контроллеров и моделек. Для выполнения задания нужно: иметь представление о HTML/CSS (так как мы делаем сайт на фреймворке, а страницы сайтов пишутся на HTML), иметь представление о SQL-запросах или желание в них разобраться (так как мы будем работать с базой данных), иметь представление об ООП (так как все популярные фреймворки используют ООП). Нужно иметь установленные и настроенные Апач/PHP/MySQL (или денвер/XAMPP но лучше бы установить компоненты по отдельности, дает полезные навыки). Задание поможет: разобраться в MVC, научиться использовать один из фреймворков, использовать современные подходы к разработке, писать более правильный код. Задание: сделать сайт uppu.ru, аналог rghost.ru, который позволяет загружать картинки и файлы и делиться ссылочкой. Насчет дизайна, я может нарисую что-нибудь завтра или послезавтра, сегодня некогда, но там должно быть 3 страницы: 1. Главная страница, она же страница загрузки файла, содержит поле выбора файла для загрузки 2. Страница просмотра файла. Если это картинка, выводится информация о файле (имя, размер, время зазрузки, комментарий автора), уменьшенная копия и ссылка «скачать». Если это не-картинка, то только информация и ссылка скачать. 3. Страница со списком последних 100 загруженных файлов, дата, ссылка скачать, название и размер. Информацию о загруженных файлах удобно хранить в базе данных. Если ты не работал с Бд и SQL, я могу дать краткие ссылочки, для этого задания каких-то крутых знаний не нужно, достаточно знать запросы SELECT, INSERT, CREATE TABLE и все. Можно использовать Yii, F3 (Fat-free framwework) или Slim. Лучше всего Slim, так как это современный микрофреймворк, но по нему трудно найти информацию на русском (на английском доккументация подробная), так что если ты не дружишь с английским, то придется взять F3 или Yii. F3 и Slim — микрофреймворки, они меньше и проще, Yii помощнее. Ознакомительная статья: - про Yii: http://yiiframework.ru/doc/blog/ru/start.testdrive (рус.) - про F3: http://habrahabr.ru/post/135619/ (рус.) - про Slim: docs.slimframework.com (англ.) net.tutsplus.com/tutorials/php/rapid-application-prototyping-in-php-using-a-micro-framework/ (англ.) Естественно, тебя никто не бросает один на один с фреймворком. Ты всегда можешь задать вопрос, а также периодически постишь свой код, а я его буду смотреть и давать советы и замечания и предупреждать о подвохах. Код удобнее всего постить на гитхаб (умение пользоваться гитом тебе все равно пригодится, если ты хочешь работать программистом, так как сейчас везде его используют), но для начала можно постить сюда: https://gist.github.com/ или на какой-нибудь pastebin или zip-архивом. Если ты быстро справишься с заданием, то я могу придумать дополнительные задачи: поиск по файлам, организация альбомов, загрузка перетаскиванием с рабочего стола, модерирование, комментарии. ---- Алсо, если ты не умрешь в процессе изготовления uppu.ru, вот что планируется сделать: - загрузка файлов на сервер - страница скачивания - для картинок, выводить информацию и превьюшку - для медиафайлов (аудио/видео), выводить информацию (ее можно получить с помощью библиотеки вроде gitId3, не руками же файлы расковыривать) - добавить плеер для аудио/видео - прикрутить поиск по файлам с помощью sphinx (чтобы это работало, нужно хранить данные в базе данных — ну я надеюсь, к этому моменту ты это осилишь) - прикрутить загрузку файлов простым перетаскиванием на страницу с помощью jQuery плагина (конечно по хоршему надо бы заставить написать тебя загрузчик с нуля, чтобы разобраться в яваскрипте и DOM, но это наверно сложовато) - комментарии к файлам - древовидные комментарии к файлам Делать в принципе можно в любом порядке. ---- Там изучать-то нечего, это микрофреймворк, весь его исходный код наверно можно за пару часов прочесть. Небольшая подстава в том, что на русском ничего почти нету, так что либо через гуглотранслейт придется разбираться, либо можешь тут непонятные вопросы задавать, я подскажу. Документация тут: http://docs.slimframework.com/ — не знаешь английского, посмотри хотя бы примеры кода или в гуглотранслейт попробуй засунуть. Слим из коробки дает тут роутер (штуку, которая разбирает URL на части и вызывает нужную функцию). Вот пример кода: $app = new \Slim\Slim(); // Define a HTTP GET route: $app->get('/hello/:name', function ($name) { echo "Hello, $name"; }); // Run the Slim application: $app->run(); При обращении по удресу http://mysite/hello/lalala выведет нужный текст. С чего начать Для работы с ним нужно установить Апач + Php, у меня есть ободряющая (инфы-то там не очень много) паста на тему установки Апача: http://gist.github.com/anonymous/946f4f1830be3955fe17 Затем скачай slim и добейся, чтобы пример с hello world работал. Затем можешь попробовать сделать страничку загрузки файла например.