Ответ 1
Я следую мышлению "учись делать" - выбираю проект и работаю над ним.
Здесь представлен список небольших (для средних) проектов.
Список файлов в каталоге
Создайте CLI-прогон и инструмент веб-интерфейса для отображения файлов в каталогах. Также попробуйте выполнить навигацию по подкаталогам и вернуть информацию о файлах (или даже показать их содержимое).
Хорошо для перемещения массивов и информации о файлах. Подсказки: glob
, FileInfo
.
Разбор XML файла
Узнайте, как читать части XML файла с помощью SimpleXML. Очень простой способ научиться использовать объекты.
Создание динамических изображений
Веселый проект, который вы можете сделать днем - отобразить текущую дату и время на изображении или имя хоста и IP-адрес зрителя. Для дополнительного кредита создайте объектно-ориентированную оболочку для GD (поскольку PHP еще не имеет этого), которая генерирует изображение, а затем расширяет его, чтобы темы могли использоваться.
Хорошо для изучения GD, суперглобалов и объектно-ориентированных классов.
Создайте (небольшое) приложение Twitter
Используйте Twitter API и cURL
, чтобы читать данные из API Twitter (и даже отправлять сообщения, если вы приключенческие). Научитесь использовать другие API (Digg хороший старт).
Хорошо учиться использовать cURL
, веб-API и формы.
Создайте список записных книжек /todo
Создайте простое приложение списка дел. Хорошая возможность попрактиковаться в AJAX.
Создание сайта загрузки изображений/файлов
Сделайте простой сайт (например, imagehack или rapidshare), который позволяет загружать изображение. Показать последние 5 загруженных изображений под формой.
Советы: Обработка загрузок файлов, FileInfo.
Подружитесь, чтобы сломать ваши вещи
Я думаю, что лучший способ начать узнавать о безопасности в Интернете - это сделать это на небольшом, отбрасывающем приложении и реагировать.
Приобретите знакомых знакомых, чтобы атаковать ваше приложение и обнаруживать уязвимости по мере их возникновения. Попросите их помочь, если вы застряли и просмотрите свои меры безопасности, чтобы убедиться, что вы что-то пропустили. Некоторые основы для изучения:
- SQL-инъекция (легко предотвратить, общая ошибка)
- Внедрение XSS
- Ввод сценариев (никогда
eval
пользовательский ввод без особого основания!)
Создайте своего рода CMS
Это может быть как можно большим или маленьким, чем вы хотите: простая форма сообщения новостей для личного блога. Убедитесь, что он включает учетные записи пользователей и какой-то внешний пользовательский ввод (например, комментарии). После того, как вы разработали базовую систему, попробуйте подумать о том, как ее могут управлять другие люди. О чем подумать:
- DAL (уровень доступа к базам данных - заставить его работать на нескольких платформах баз данных)
- Шаблонирование
На данный момент я настоятельно рекомендую посмотреть другие приложения. phpBB3 и vBulletin - хороший выбор для PHP (phpBB - это с открытым исходным кодом, но vBulletin - это частный продукт, к сожалению). Некоторые говорят, что Wordpress - хорошая вещь, на которую можно смотреть (я не согласен), но я ожидаю, что Joomla не будет плохой картиной для просмотра.
Создание кэшируемого устройства чтения фидов
Немного более продвинутый - создайте систему, которая читает фиды, сохраняет их содержимое и возвращает данные. Затем выполните кэширование в систему (например, сохраните сериализованные данные о возвращенных фидах (поскольку они не будут изменены).
Хорошо для изучения интерактивности базы данных и кэширования контента. Подсказки: сериализуйте (или даже memcached).