HOW-TO: Веб-разработка. Часть 4 Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
fullcircle:23:веб-разработка_ч4 [2010/04/15 17:02]
создано
fullcircle:23:веб-разработка_ч4 [2010/04/17 20:29] (текущий)
Строка 1: Строка 1:
-======HOW-TO:​ Веб-разработка. Часть ​======+======HOW-TO:​ Веб-разработка. Часть ​======
  
   - [[..:​20:​веб-разработка_ч1|Веб-разработка. Часть 1]]   - [[..:​20:​веб-разработка_ч1|Веб-разработка. Часть 1]]
Строка 12: Строка 12:
 </​style>​ </​style>​
  
 +Языки программирования предназначены для того, чтобы автоматизировать выполнение задач и сделать жизнь проще. PHP не является исключением.
 +
 +Однако PHP, каким бы он ни был хорошим,​ простым и широко используемым (на приблизительно 20 миллионах компьютерах и таких сайтах,​ как Facebook, Wikipedia (MediaWiki),​ Digg, Wordpress, Yahoo! и многих других),​ это не единственный язык, который применяется в интернете. Не является он также и лучшим.
 +
 +Для веб-разработки существует множество языков программирования,​ включая Python, Perl, Ruby (и Ruby on Rails), Java (JSP), ASP, ASP.net и др. Вы можете даже погрузиться в таинства доступного лишь избранным программирования на C, C++ или другом низкоуровневом языке.
 +
 +Но следует понимать,​ что каждый язык отличается от остальных,​ и все они используются для разных целей и задач. Некоторые являются процедурными,​ другие – объектно-ориентированными,​ третьи – смешанными. Если вы решите изучить Python, не медлите! Я очень советую это сделать. Кроме того, ваше резюме станет выглядеть ещё
 +лучше, не так ли? Одни работодатели примут вас только с опытом написания программ на ASP.net., другим же будет достаточно знания PHP и Python. Выясните,​ на чём вам удобнее писать,​ а также что требуется другим людям (если вам интересны деньги!).
 +
 +===== Ваш первый веб-сайт =====
 +
 +Считая,​ что вы уже сделали свой первый сайт после прочтения второй статьи из серии о веб-разработке в 21-м
 +выпуске Full Circle, мы продолжим работать над файлом «index.html»,​ который мы сохранили в локальной веб-папке.
 +
 +===== Делаем сайт динамическим =====
 +
 +Редактирование большого числа страниц может вскоре стать очень неудобным,​ если, к примеру,​ вы хотите добавить на сайт страницу «birds.html» или обновить все страницы,​ потому что настал 2010 год. PHP позволяет сделать страницу динамической,​ разделив её на подключаемые секции.
 +
 +Для начала выделим CSS в отдельный файл. Это не обязательное,​ но рекомендуемое правило,​ и следовать ему стоит
 +практически для любой части сайта (CSS, javascript, PHP и всё, что повторяется на сайте несколько раз).
 +<code css>
 +*{
 +color: #ececec;
 +font-family:​ '​DejaVu Sans', sans-serif;
 +}
 +body{
 +background-color:​ #212122;
 +}
 +#footer{
 +border-top: 1px solid #ccc;
 +}
 +#footer p{
 +font-size: 80%;
 +text-align: center;
 +}
 +</​code>​
 +Создайте новую папку «css» и сохраните в неё этот код под именем «screen.css».
 +
 +В файле index.html удалите
 +строки:​
 +<code html><​style type="​text/​css"></​style>​
 +</​code>​
 +и замените их на:
 +<code html><​link rel="​stylesheet"​ type="​text/​css"​ href="​css/​screen.css"​ /></​code>​
 +
 +Вы только что успешно отделили CSS от HTML.
 +
 +Теперь,​ чтобы сделать оставшуюся часть сайта более модульной,​ перенесите весь код, начиная со строки «<​!DOCTYPE>​»,​ заканчивая «<​body>​»,​ в файл «header.php»,​ который поместите в новую папку «inc».
 +
 +Так же поступите с фрагментом от «<​p>​Menu:</​p>​» до «</​ul>​»,​ поместив его в файл «menu.php» в ту же папку.
 +
 +Наконец,​ создайте файл «footer.php» в папке «inc». Его содержимое должно начинаться с «<div id="​footer">​» и заканчиваться строкой «</​html>​».
 +
 +Скопируйте оставшееся содержимое до тега «</​div>​»,​ который располагается перед «<div id="​footer">​»,​ и поместите в файл «index.php»,​ который должен быть непосредственно в локальной веб-папке,​ рядом с файлом «index.html». Файл «index.html» нам больше не нужен, его можно удалить.
 +
 +Сейчас ваша локальная веб-папка должна содержать следующие файлы и папки:
 +<​code>​
 +localhost/
 +      css/
 +                screen.css
 +      inc/
 +                footer.php
 +                header.php
 +                menu.php
 +      index.php
 +</​code>​
 +
 +Теперь добавьте в самое начала файла «index.php» следующие строки:​
 +<code php>
 +<?php
 +include ('​inc/​header.php'​);​
 +?>
 +</​code>​
 +
 +там, где было меню, вставьте:​
 +<code php>
 +<?php
 +include ('​inc/​menu.php'​);​
 +?>
 +</​code>​
 +
 +и этот код в самый конец файла:
 +<code php>
 + <?​php
 +include ('​inc/​footer.php'​);​
 +?>
 +</​code>​
 +
 +Проницательный читатель заметил:​ всё, что мы сделали,​ это просто перенесли заголовок,​ меню и нижнюю часть страницы в отдельные файлы, так же мы поступили с CSS. А потом включили эти файлы в «index.php».
 +
 +Также вы познакомились с первым кодом на PHP и первой функцией (функция include()). При написании кода на PHP очень важно, чтобы:
 +
 +  - имена файлов заканчивались на .php и
 +  - код на PHP находился внутри PHP-тегов «<?php ?>».
 +
 +Для этих правил существуют исключения (как и для всего остального,​ чего я успел коснуться),​ но этим двум советам стоит следовать для повышения безопасности,​ удобства и согласованности.
 +
 +<code php>
 +<?php
 +       ​include ('​inc/​header.php'​);​
 +?>
 +<div id="​content">​
 +<?php
 +       ​switch($_GET['​page'​])
 +       {
 +             ​default:​
 +             case '​home':​
 +                   echo '<​h1>​Мой первый сайт!</​h1><​p>​Привет! Добро пожаловать на мой первый сайт!
 +                          Не ругайте меня, я только что начал изучать веб-разработку,​
 +                          но скоро я сделаю ещё много чего!</​p>';​
 +                   ​break;​
 +             case '​dogs':​
 +                   echo '<​p>​Я люблю собак!</​p>';​
 +                   ​break;​
 +             case '​cats':​
 +                   echo '<​p>​Я люблю кошек!</​p>';​
 +                   ​break;​
 +             case '​lizards':​
 +                   echo '<​p>​Я люблю ящериц!</​p>';​
 +                   ​break;​
 +       }
 +?>
 +<?php
 +        include ('​inc/​menu.php'​);​
 +?>
 +</​div>​
 +<?php
 +        include ('​inc/​footer.php'​);​
 +?>
 +</​code>​
 +
 +Если вы перейдёте на [[ http://​localhost/​index.php ]], то не заметите никакой разницы между предыдущим файлом «index.html» и «index.php»,​ который мы создали только что.
 +
 +===== Конструкция switch языка PHP =====
 +
 +В заключении этого введения в PHP я расскажу о конструкции switch.
 +
 +Сначала поместите код с предыдущей страницы в файл «index.php» и удалите всё остальное.
 +
 +Конструкция switch использует переменную «page» из строки запроса (всё, что расположено в URL после вопросительного знака (?), считается строкой запроса).
 +
 +Правильно сформированная строка запроса выглядит так: http://​example.com?​variable=5. Мы вскоре её используем.
 +
 + ​Также обратите внимание на условия,​ которые принимает конструкция switch: «home», «dogs», «cats» и «lizards». То, что написано в условии «default»,​будет выполнено,​ если не подойдёт ни одно другое условие (например,​ http://​localhost/​index.php?​page=birds). Это не самый лучший способ для обработки неверной строки запроса,​ но для начала он подойдёт.
 +
 + ​Теперь измените код в файле inc/​menu.php,​ чтобы он выглядел так:
 +<code html>
 +<​p>​Menu:</​p>​
 +<ul>
 +<​li><​a href="​index.php?​page=home">​Home</​a></​li>​
 +<​li><​a href="​index.php?​page=dogs">​Dogs</​a></​li>​
 +<​li><​a href="​index.php?​page=cats">​Cats</​a></​li>​
 +<​li><​a href="​index.php?​page=lizards">​Lizards</​a></​li>​
 +</ul>
 +</​code>​
 +
 +Теперь мы можем передавать файлу «index.php» переменную «page» , содержащую «home», «dogs», «cats» или «lizards»,​ в зависимости от нажатой ссылки. Теперь можно свободно переходить между страницами,​ а их содержимое будет меняться. Поэкспериментируйте самостоятельно. Добавьте пятую страницу с названием «birds» и
 +убедитесь,​ что она работает. Пожалуйста,​ учтите,​ что это очень краткое введение в PHP. При разработке веб-сайтов,​ которые используют include, необходимо учитывать некоторые вопросы безопасности,​ такие как прямой доступ ко включаемым файлам (файлы в нашей папке «inc»). Но этой темы я коснусь следующий раз.
 +
 +<note tip>​**Brett Alton** – энтузиаст Ubuntu, технический специалист и разработчик ПО из Торонто,​ Канада</​note>​
 +
 +----
 +<style center>
 +  - [[..:​20:​веб-разработка_ч1|Веб-разработка. Часть 1]]
 +  - [[..:​21:​веб-разработка_ч2|Веб-разработка. Часть 2]]
 +  - [[..:​22:​веб-разработка_ч3|Веб-разработка. Часть 3]]
 +  - [[..:​23:​веб-разработка_ч4|Веб-разработка. Часть 4]]
 +
 +----
 +
 +//​[[..:​23|К содержанию номера]]//​
 +
 +//​[[:​fullcircle|К архиву журналов]]//​
 +</​style>​
 +
 +{{tag>​howto php html css Программирование Full_Circle}}