Начнем с описания инфраструктуры, которая понадобится для разработки на PHP.

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

Операционная система

Желательно использовать Ubuntu, т.к. оставаясь достаточно удобной для конечного пользователя, при этом является полноценной ОС Linux, которая будет работать очень похоже на Ваш реальный сервер и все операции Вы сможете выполнять профессионально и привыкать к правильному использованию.

Но если принципы Вам не позволяют, то можно использовать и Windows, и Mac OS.

Веб-сервер

Существует несколько LAMP-сборок, которые включают полный стандартный стек серверных приложений, необходимых для веб-разработки — веб-сервер Apache, MySQL, PHP и наборы инструментов для работы с ними и мониторинга. Это такие решения, как:

— WAMP

— XAMPP

— Denwer

Я бы порекомендовал использовать их именно в таком порядке предпочтительности — WAMP — наиболее профессиональный, XAMPP на втором месте, Denwer — на третьем

Среда разработки IDE

Блокнот, это здорово, но это песочница. Когда понадобится создать что-то сложное — появятся следующие вопросы:

— как в сложном приложении, которое формирует страницу через ядро какой-то возможно даже не нами написанной CMS или Framework, отследить, какое значение принимают переменные, каким путем идет выполнение программы?

— среди подключенных к приложению библиотек, какие есть классы, которые я могу использовать, какие методы есть у этих классов, и какие параметры у нужного мне метода

— как удобно залить приложение в систему контроля версий

Это не все вопросы, в которых IDE будет незаменимым помощником

Существуют следующие основные IDE, поддерживающие PHP:

— Eclipse

— NetBeans

— PhpStorm

— ZendStudio

Какая Вам больше подойдет — выбирайте сами, главное, что каждая из перечисленных сред позволяет решать вышеописанные задачи с помощью:

— возможности дебага и трейсинга

— формированию визуальной структуры файлов (классов, методов)

— автодополнению кода — отображению имеющихся классов, методов и их параметров, во время написания кода

Плюс каждая из сред имеет свои плюшки и конечно же свои недостатки, и я считаю выбор между ними — уже дело вкуса, привычки, или конкретных условий и задач разработки

Debugger

Для того, чтобы в IDE работала возможность дебагинга, нужно поставить xDebug — модуль PHP, позволяющий делать останов, трассировку и отображать значения переменных.

Система контроля версий кода

Когда проект делается не для себя, когда к коду тем или иным образом имеют отношение более одного человека, то целесообразно использовать систему управления версиями кода. Мы используем Subversion (сокращенно SVN). IDE как правило поддерживают эту систему и имеют встроенный клиент. Под Linux рационально использовать родной консольный клиент, под Windows — популярен TortoiseSVN.

Для работы нам понадобится

  • Adobe Photoshop или ImageReady для работы с макетом дизайна в формате .psd и для резки его на фрагменты
  • Dreamweaver или любая другая среда, например TopStyle, Eclipse, PHPStorm, HomeSite для редактирования HTML и CSS
  • Справочник по HTML, CSS, Javascript, библиотекам Javascript. Это может быть ресурс htmlbook.ru, может быть встроенная в среду помощь, либо любой другой удобный для вас источник информации
  • браузеры FireFox, Opera, Chrome, Safary, а также программа IETester – всё последней версии – для проверки созданных страниц и для “отладки”
  • FireBug или другой подобный
  • редактор Javascript, в качестве которого может выступать одна из вышеописанных сред: Dreamweaver, Eclipse, PHPStorm

Рабочий процесс создания веб-страницы

В общем виде создание страницы из макета дизайна происходит в такой последовательности

  • Создание статической части страницы
  • Просмотр макета и определение блоков, из которых будет состоять страница.
    • Резка страницы на блоки и автоматическое создание каркаса страницы, состоящей из файлов .html и .css, содержащих основные, неизменные блоки страницы (ImageReady)
    • Резка страницы на детальные блоки (ImageReady) и наполнение каркаса страницы деталями с помощью HTML и CSS (DreamVeawer).
    • FireBug — для «отладки» готовой страницы прямо в браузере
  • Создание шаблона CMS Joomla (может отличаться, если используется другая CMS)
    • Установка сайта на основе CMS
    • Копирование файлов шаблона в папку /templates/<имя_шаблона>/
    • Переименование файла со страницей в index.php
    • Настройка CMS на использование шаблона
    • Добавление в index.php всех необходимых элементов шаблона
    • Настройка вывода необходимых модулей для их последующего оформления в шаблоне
    • Оформление отображения модулей с помощью CSS в шаблоне
    • Создание установочного xml-файла для шаблона
  • Создание эффектов анимации на странице
    • Поиск решения для анимации (как правило – использование JQuery и  дополнительных библиотек, либо создание своих)
    • Резка динамических элементов страницы и создание их представления в статическом виде с помощью HTML и CSS для последующей анимации
    • Вызов функций для анимации имеющихся элементов
  • Создание динамического веб-интерфейса для ввода/вывода данных
    • Поиск и выбор решения для динамического интерфейса (как правило – использование JQuery + доп.библиотек, либо ExtJS, либо Dojo, Mootools, MochiKit, YUI, Prototype либо еще каких-то. Основные на наш взгляд варианты – JQuery и ExtJS.
    • Создание интерфейсов с помощью выбранной библиотеки, позволяющих выполнять необходимую интерактивность – ввод данных об определенных сущностях, редактирование, сохранение, поиск и вывод нужных данных
    • Создание кода по взаимодействию с сервером для получения-отправки данных, в частности с использованием AJAX и созданного ранее API обмена данными