- Как выглядит PHP код?
- Как работает PHP?
- Что нужно для начала работы с PHP?
- Начало работы с PHP на Денвере
- Вступительный урок. Что нужно для начала работы с PHP
- Что нужно знать
- Программное обеспечение
- После уроков
- Первый урок
- PHP с нуля. Урок 1
- Основы синтаксиса:
- Урок 1. Создание первого скрипта
- Как ненадо писать Hello World:
- Завершение.
- О песочнице
- О модерации
- Что и в каком объеме нужно знать php программисту
- Что должен знать начинающий PHP разработчик
- Фундамент
- Общепознавательное
- HTML и CSS
- JavaScript
- Еще чуть-чуть напрягов
- И на что я могу расчитывать?
Доброго времени суток, уважаемые читатели блога Site on! Вот и пришло время познакомиться нам с таким чудесным языком программирования как PHP, который, в свою очередь, специально заточен под наши нужды, то есть – для веб-разработки. На самом деле в нём нет ничего сложного. Всё, что вам потребуется – это ваше желание, свободное время и не забыть подписаться на выход новых статей, в которых я постараюсь доступным языком, шаг за шагом рассказать об успешном создании сайтов на PHP.
PHP (Hypertext Preprocessor) – это скриптовый (встраиваемый) язык программирования, который служит инструментом для придания динамики нашим с вами сайтам, а также для автоматизации множества процессов. Именно благодаря PHP, который является свободно (бесплатно) распространяемым, и были созданы все современные CMS (системы управления контентом): Joomla, WordPress, Monstra, OpenCart, Drupal, DataLife Engine (DLE) и так далее. Собственно говоря в этом и заключается суть данного курса раздела – в том, что без знания PHP вы просто банально не сможете произвести тонкую настройку CMS под ваши нужды, не говоря уже о создании действительно успешных и стоящих веб-проектов. С мотивацией разобрались? Пойдёмте дальше.
Как выглядит PHP код?
У меня при открытии данной страницы вместо текста на русском языке получилось вот что:
Что нужно сделать, чтобы этого избежать я очень подробно описал в статье о том, как правильно задать кодировку для сайта на Joomla и других CMS. Вот что у меня получилось, после действий описанных по ссылке:
Как работает PHP?
Что нужно для начала работы с PHP?
После установки Денвера вы будете обладать всем необходимым ПО (программным обеспечением), которое нужно для разработки сайтов на PHP, а также для установки и использования любой CMS (Joomla, WordPress и тд.).
Также подразумевается, что у вас уже есть хотя бы базовые познания в области HTML + CSS, а, следовательно, вы уже успели хотя бы чуть-чуть поработать с такими инструментами для разработки сайтов как веб-инспекторы и уж точно знаете из чего состоит сайт. Ещё стоит отметить, что работу PHP разработчика может заметным образом облегчить правильно подобранный редактор кода, в котором вы быстро освоитесь и будете использовать все встроенные возможности редактора по максимуму и с наибольшим КПД. Примером такого редактора, кстати, абсолютно бесплатного, может послужить Sublime Text 2. Перейдя по ссылке, вы можете прочитать о нём обзорную статью и научиться некоторым тонкостям работы.
Начало работы с PHP на Денвере
Запустить такой файл простым перетягиванием в браузер, как мы делали это раньше, не получится. Сначала нам нужно не забыть сделать двойной клик по «Start Denwer», чтобы запустить наш веб-сервер Apache, а затем в адресную строку браузера ввести следующий url:
Где каталог blog2 – это та самая папка с произвольным названием для вашего сайта (измените на свою).
Получилось? Тогда рад вас поздравить, вы только что создали свою первую веб-страницу с PHP вставками. На сегодня всё, в следующих статьях мы начнём уже подробное изучение скриптового языка программирования – PHP.
Вступительный урок. Что нужно для начала работы с PHP
В этом вводном уроке вы познакомитесь с нужными программами, которые нужны для работы с PHP.
Что нужно знать
Перед началом изучения PHP, я бы порекомендовал вам изучить HTML.
Файлы, в котором записан PHP код нужно сохранять под расширением .php
Для того чтобы научится PHP (как и любому другому языку программирования) важно много практиковаться.
Когда вы будете читать уроки, то не копируйте код, а именно пишите сами, так будет лучше для Вас, так Вы быстрее запомните сам язык, и вам будет легче дальше.
Программное обеспечение
Первая программа, которая вам нужна, это браузер (то, в чем Вы сейчас находитесь :D)
Веб-сервер. Для локального тестирования вам нужно установить веб-сервер. Я рекомендую поставить Open Server (Mini версии будет достаточно). Как установить Open Server. Open Server является портативным, т.е. вам нужно только разархивировать скачанный архив и запустить сервер через Open Server.exe. После старта программы вы увидите красный флажок в трее Windows (область возле системных часов). Чтобы включить непосредственно сам веб-сервер нажмите на флажок, далее выберите пункт меню Запустить.
Чтобы создать новый домен вам нужно перейти в папку OpenServer/domains и создать папку с подходящим для вас названием, после создания новой папки нужно перезагрузить веб-сервер (нажать на флажок в трее, нажать Перезагрузить). После чего вы сможете получить доступ к своему локальному домену по адресу http://yourdomain
Убедитесь, что в Open Server есть права на редактирование Windows hosts файла. Некоторые антивирусы могут блокировать доступ к этому файлу. В противном случае, вы не сможете создать локальные домены.
Последняя программа, которая потребуется, это блокнот, он нужен для редактирования PHP кода. Но, я рекомендую поставить вам Notepad++ или Sublime Text, это лучше чем использовать обычный блокнот Windows.
После уроков
После уроков, крайне важно не останавливаться только на одном учебнике, я рекомендую вам еще почитать книги о программировании на PHP, почитать статьи и т.д. После учебников рекомендую написать какой-то свой маленький веб-сайт или сервис, при написании которого вы столкнетесь с проблемами, которые будете решать и одновременно учиться.
Первый урок
Если вы уже установили все необходимое программное обеспечение, то можете переходить к первому уроку
PHP с нуля. Урок 1
PHP ( PHP: Hypertext Preprocessor, задумчивый препроцессор
гипертекста) — скриптовый язык программирования, oриентированный на web.
B 1 yрокe познакомимся с основным синтаксисом, а так же напишем свой первый скрипт.
Основы синтаксиса:
—
— начало и конец скрипта
оператор присваивания — =
— Вывод текстовой информации — echo (может выводить html-код)
Урок 1. Создание первого скрипта
Как вы видите скрипт состоит из одной строчки.
Что бы выполнить скрипт необходимо соответствующее ПО, для пользователей Windows я рекомендую Denwer (http://denwer.ru)
После установки Denwera создаем в каталоге hosts папку Script.test, в которой в свою очередь создаем папку
WWW. В папке WWW создаем файл index.php? в который переносим содержимое нашего файла.
После сохранения файла перезапустите Denwer. Затем в строке браузера наберите script.test
И вауля! Мы видем надпись Hello World!
Как ненадо писать Hello World:
Hello World Не пишется так
Ну уж точно не так:
Завершение.
На этом наш урок подошел к концу, ну а в завершении небольшая подборка полезных ссылок:
denwer.ru — сайт откуда можно скачать Denwer
ru.wikipedia.org/wiki/PHP — Что такое PHP
http;//php.net — самоучитель по PHP
О песочнице
Это «Песочница» — раздел, в который попадают дебютные посты пользователей, желающих стать полноправными участниками сообщества.
Если у вас есть приглашение, отправьте его автору понравившейся публикации — тогда её смогут прочитать и обсудить все остальные пользователи Хабра.
Чтобы исключить предвзятость при оценке, все публикации анонимны, псевдонимы показываются случайным образом.
О модерации
Не надо пропускать:
Что и в каком объеме нужно знать php программисту
Хочу сразу оговориться данная статья что отображает мое собственное мнение по этому вопросу основанное на личном опыте и не претендует на абсолютную точность. Написана она для тех, кто или только задумывается на карьерой php программиста или думает что бы изучить дальше.
Ниже я постараюсь изложить свою точку зрения на тот перечень языков, ПО и технологий, которые нужно знать php программисту, что бы претендовать на хорошо оплачиваемую работу. Оговорюсь сразу что я не буду давать ссылок ни на какие учебные материалы, не буду приводить сроков, которые понадобятся для изучения, а так же не смогу даже приблизительно предположить на какую ЗП вы сможете рассчитывать освоив тот или иной перечень.
Ну тут само по себе понятно что, если планируешь стать PHP программистом то PHP как раз то что нужно знать и как можно лучше. Касательно версии PHP, которую стоит изучать — думаю что на данный момент нету смысла начинать с версии ниже PHP 5.0, вряд ли вы найдете где-то вакансию где нужно будет работать на версии ниже этой.
Что касается глубины знаний по этому языку, то чем они будут глубже и объемнее тем соответственно лучше, т.к. это ваш основной рабочий инструмент. О том что конкретно изучать и в какой последовательности вы сможете легко найти информацию в Интернете скажу только что обязательно нужно изучить реализацию ООП, т.к. основная масса фреймворков и CMS написаны с использованием этой парадигмы. Так же полезным будет почитать про шаблоны проектирования, в частности про MVC.
Вряд ли зная только один язык PHP вы сможете найти достойную работу. Основная масса вакансий требует от программиста знания и умения работать с одним из распространенных хранилищем данных. На данный момент выбор различного ПО для хранения данных довольно велик хотя на мой взгляд для php программиста была и пока остается самой востребованной СУБД MySQL. Я не в коей мере не пытаюсь занизить достоинства других СУБД, но в основной массе вакансий фигурирует именно MySQL.
Что касается версии, то опять же стоит изучать MySQl с версии 5.0 и выше.
По данной теме в Интернете так же можно найти множество информации для изучения, от себя хочу акцентировать внимание только на необходимости изучения способов оптимизации как самой структуры базы данных, так и запросов к ее таблицам.
Базовые знания в данных вещах в любом случае понадобятся php программисту. Пусть php и является серверным языком, но он в основном и связан с генерацией HTML страничек с CSS стилями, так что базовые знания все же нужны.
Казалось бы что этот клиентский язык программирования уж точно выходит за область обязательных знаний php программиста, но опять же рынок диктует совсем противоположное. В различных вакансиях, которые мне доводилось встречать уровень знаний в этом языке разнится, но практически во всех он обязателен.
Что бы лично от себя я порекомендовал — после того как ознакомитесь с основным синтаксисом этого языка переходите сразу к изучению одного из распространенных фреймворков, я бы посоветовал выбрать между JQuery и ExtJS. В основном в вакансиях фигурируют именно эти два фреймворка.
Это опять же мое личное мнение, которое основано на опыте и на логике. Т.к. основная масса серверов для хостинга сайтов написанных на php работают под управлением *nix (Linux или Unix) то соответственно лучше бы знать эту операционную систему. Лично я уже давно на рабочем компьютере устанавливаю Linux Ubuntu. На данный момент в этом дистрибутиве все сделано таким образом, что установка и настройка LAMP не вызывает совершенно никаких трудностей.
После того как вы установите и настроите у себя на компьютере LAMP советую изучить основные команды для работы в командной строке: работа с пользователями и группами пользователей *nix, работа с файлами и каталогами, работа с редакторами vi, vim, работа в файловом менеджере Midnight Commander, работа с демоном-планировщиком cron.
Думаю что не ошибусь, если скажу что на данный момент Apache все же остается самым распространенным веб-сервером. Мне кажется что начать легче всего именно с него. Хотя и изучать особо углубленно его тонкую настройку все же нет смысла, т.к. по производительности лучшим выбором будет связка Ngix + php-fpm.
Ниже приведен перечень того, на что бы я еще порекомендовал обратить внимание для серьезного php (и не только) программиста:
1. PHP фреймворки — на данный момент очень редко в вакансиях не указывается знание одного или нескольких PHP фреймворков. В основном востребованы следующие: ZendFramework, Yii, Code Igniter, Symfony и Kohana. Мне больше всего нравится Yii.
2. ПО для кеширования данных, например: Memcached, Redis и т.д.
3. ПО для кеширования байткода php скриптов, например: eAccelerator, XCache и т.д.
4. NoSQL базы данных, например: MongoDB, CouchDB, Redis и т.д.
5. Английский язык, как минимум в достаточной мере что бы читать англоязычную документацию без словаря.
Дополнительно для работы в команде
Важные вещи для успешной работы в команде:
1. Coding Standards — очень важная вещь. В общем понимании это правильное и удобное для чтения оформление вашего кода.
2. Удобный и правильно настроенный редактор. По поводу правильных настроек лично я имею ввиду только правильною кодировку файлов и отступы в виде табуляции.
3. Умение работать с одной из распространенных систем контроля версий. Например: svn или git.
4. Опыт работы с каким-нибудь ПО для организации работы команды для постановки задач/ошибок, отслеживания потраченного времени и т.д. так же будет плюсом. Обычно такое ПО называется project management, в качестве примера можно привести Jira.
Дополнительно для работы в режиме фриланса
1. Если предполагается работать одному, то тут вам уже не обойтись без хотя бы базового знания графических программ, таких как Photoshop. Так же нужны будут боле углубленные знания по HTML + CSS, для того, что бы вы смогли делать кросбраузерную верстку.
2. Основная масса заказов скорее всего будет состоять в исправлении или добавлении функционала распространенных CMS, таких как: wordpress, Joomla, Drupal, DLE или Bitrix. Если ориентироваться на мелкие и средние заказы, то вам вряд ли понадобится знание какого-то из перечисленных выше фреймворков.
Ну вот вроде и все что я хотел сказать по данной теме. Надеюсь что статья окажется полезной. Спасибо за внимание.
Что должен знать начинающий PHP разработчик
Хотел было написать очередную статью о собеседованиях, но мне кажется формат себя изжил, так что читаем и мотаем на ус.
Фундамент
Соображать и использовать Google. Первое оценить сложно, для этого придумано много «дурацких» вопросов для собеседований. Второй пункт либо прививается в первые дни испытательного срока, либо разработчик владеет им изначально, иной вариант никто не рассматривает…
Общепознавательное
Я таки опять возвращаюсь к собеседованиям, и манит меня прям
Из чего состоит HTTP запрос/ответ (да откройте же firebug или что у вас там установлено и посмотрите)
Установка связки Apache+PHP+MySQL — потренируйтесь, это ой как надо.
Таки немного о linux — о различиях файловых систем в сравнении с windows, о раздаче прав (chmod) и как выйти из vi без сохранения.
Пару-тройку дней потребуется на усвоение базовых знаний.
Основы основ — получение и обработка входящих параметров.
Работа с циклами, массивами и строками. И да, простенькое задание с собеседования (пора угомониться):
Работа с базой данных и с файлами. Для усвоения материала — вот вам задание: написать анонимную доску объявлений (с блек. аплоадом картинок)
Должны знать как работает механизм сессий — т.е. что происходит от момента вызова session_start, и каким боком это всё связано с cookies (помните я говорил о HTTP?).
Знать для чего служит include, require и какая между ними разница.
Разницу между echo и print не только знать, но и понимать.
Таки научиться работать с объектами, понимать разницу между абстрактным классом и интерфейсом.
Знать и использовать namespace.
Отдельно стоит упомянуть о гигиене кода — необходимо соблюдать стандарты кодирования, из множества существующих рекомендую стандарты кодирования Zend Framework’а
Чем больше опыта, тем лучше, но основы вы подтяните за неделю, ОПП потребует еще недельку.
Основы синтаксиса SQL. Немного вникнуть в MySQL и понимать различия между MyISAM и InnoDB.
Знать как работают LEFT/RIGHT/INNER JOIN’ы — наглядно в статье Visual Representation of SQL Joins (ссылка на картинку для ленивых — Visual_SQL_JOINS_orig.jpg O_o)
Переделать БД, т.к. в библиотеке зачастую больше, чем один экземпляр книги, а надо знать какой именно экземпляр брал посетитель.
Сосредоточенного изучения в течении недели вам хватит.
HTML и CSS
Сверстайте пару страниц, от и до (HTML должен быть валидным). Не слушайте, что это работа дизайнера/верстальщика/кого-то еще. Поверьте моему опыту — вам отдадут свёрстанную страницу, никто за вас не будет интегрировать HTML шаблон в вашу систему, так что знание HTML и CSS в обязательном порядке.
Забудьте о том, что Smarty создан для верстальщиков, и они вам будут готовые шаблоны отдавать — это сказки. О Smarty тоже забудьте, хотя нет — иметь представление что это такое конечно надо, а вот использовать — нет.
Должны понимать CSS следующего содержания:
Узнать что есть блочная модель, да как работает float. Что есть margin и padding.
Дней пять вам хватит для освоения базовых навыков верстальщика.
JavaScript
Знать: синтаксис, о том как работают события, понимать что такое замыкание, и как работает AJAX. Рекомендую прочитать учебник Ильи Кантора. Это немного, изучение данных вопросов у вас не займет больше недели.
Далее прочитайте первые шесть частей из моей серии «jQuery для начинающих» — это еще пару-тройку дней на усвоение материала.
Еще чуть-чуть напрягов
Понимание шаблона MVC. Знакомство с каким-нить фреймворком (Zend Framework, Symfony, Yii, и т.д.). Можно пройти Quick Start от Zend Framework’а.
Научиться работать с БД посредством PDO. Знать что есть SQL-инъекция.
Познакомиться с какой-нить современной системой контроля версий (да хоть с SVN)
И на что я могу расчитывать?
Месяц изучения, и вы уже сможете претендовать на должность Junior PHP разработчик. Ответ на меркантильный вопрос смотрите на DOU