Php программирование


Личный опыт как доказательство: язык программирования PHP – главный в Сети

От автора: необходимо ли знать язык программирования PHP? Если собираетесь связать свою судьбу с сайтостроением, то придется. Даже если очень не хочется! Почему так? На все распространенные «почему», связанные с этим языком, мы попытаемся ответить в нашем материале.

Раствор, который «скрепляет» интернет

Именно так охарактеризовал PHP один мой знакомый, занимающийся созданием интернет-ресурсов уже более десятка лет. И он прав, наверное, процентов на 200% (а может и больше).

Сама история возникновения данного языка говорит о том, что он был рожден, чтобы «слепить» нынешнюю версию Сети, к которой мы так привыкли. Наверное, поэтому некоторые так и не могут осознать его мощь, даже после изучения основ программирования PHP.


Доказывать роль PHP в создании интернет – вещь неблагодарная. Тут, как говорится, могут начать выступать сторонники других серверных языков. Мол, «препроцессор гипертекста» (так расшифровывается аббревиатура PHP) уже отжил свое. Многие из его функций реализованы даже в HTML5…

Ну, кричать и размахивать руками, превознося свой язык программирования, на котором специализируешься, дело нехитрое. Но лучшей «уликой», указывающей на востребованность PHP, является его распространенность.

Следующий рейтинг программных языков, составленный специалистами TIOBE летом прошлого года, говорит нам о том, что PHP уже в течение нескольких лет постоянно входит в топ. Вы еще не побежали искать по языку программирования PHP самоучитель? Скоро побежите :) .

Личный опыт как доказательство: язык программирования PHP – главный в Сети

Если вас интересует, почему так скаканул Java, то отвечу: благодаря мобильной операционке Android, приложения под которую разрабатываются на этом языке.

Собственные грабли

Еще в начале двухтысячных я занимался «изысканиями» в сфере программирования. Все пытался выяснить, к какой «партии» разработчиков стоит примкнуть, изучению какой дисциплины посвятить свою жизнь.

Как язык программирования PHP для начинающих я не рассматривал в принципе. Он казался чересчур запутанным. Вот другое дело ASP.NET: коммерческий язык, основанный на C#. Ох, какие воздушные замки я тогда строил! И для этого были все предпосылки:


Личный опыт как доказательство: язык программирования PHP – главный в Сети

ASP.NET в отличие от PHP давался мне намного легче. Visual Studio автоматизировала большое количество операций по написанию серверных скриптов. Например, благодаря отличному визуальному редактору на создание веб-страницы уходило всего несколько минут. Путем перетаскивания элементов управления и прописыванием в редакторе их стилей можно было сделать сайт меньше чем за час!

А вот язык программирования PHP с нуля мне сразу не дался. Честно, я пытался с ним подружиться (надо же было, как-то сдавать экзамен). Но при изучении его основ он показался мне черствым и даже холодным.

В общем, занялся я ASP.NET. Состряпал первый свой сайтик. Ну, в среде разработки вроде все функционирует. Кроссбраузерность проверил в нескольких популярных браузерах. Думаю, пришло время и «повоевать». Так сказать, показать свое «детище» всей стране (как минимум). Вот тут и оказались» грабли».

Мои попытки найти в Рунете хостинг с поддержкой ASP.NET так и не увенчались успехом. Было, конечно, несколько платных площадок, но цены за размещение на них сайта были явно не «студенческие».


Кое-как нарыл я в «Буржунете» бесплатный вариант хостинга (кстати, спонсируемого Microsoft). Ну «поклацал», насладился широтой своей мысли, а дальше дело не пошло. И все из-за того, что большая часть сайтов уже тогда делалась на PHP.

Как учить – несколько советов

После того, как определитесь и точно поймете, что готовы изучать PHP язык программирования, поищите самоучитель для новичков «под себя». Главное, чтобы вы понимали, что автор издания хочет донести своим читателям. Сразу приготовьтесь «отвалить» хорошую сумму за качественную литературу.

Но лучше применять комплексный подход – добавить еще и толковый онлайн-курс. Это позволит оттачивать свое умение сразу на практических примерах. И мой вам совет – поменьше занимайтесь копипастом кода! Почему, сейчас поясню.

Когда вы будете набирать примеры скриптов самостоятельно, то быстрее привыкните и запомните особенности синтаксиса PHP. Что касается литературы, то выбирайте самоучитель с основами программирования на PHP. И желательно, чтобы автор выкладывал код всех приводимых примеров на своем ресурсе в Сети.

Также сразу перед началом обучения скачайте и установите Open Server. Этот программный пакет включает в себя все среды, которые потребуются вам для написания и тестирования кода.

Ну, на сегодня разрешите откланяться. Простите (если что) за излишнюю обзорность содержания статьи, но это нужно для понимания особенностей данного языка (все-таки серверный). Желаю вам быстрее постичь основы языка программирования PHP и приступить к настоящему кодированию!


Php программирование

webformyself.com

Появилась мысль рассказать Вам о языке PHP. Головной сайт разработчиков этого языка http://www.php.net, на нем Вы сможете скачать интерпретатор языка и узнать о языке практически все (для тех кто не боится английского).

Я не буду Вам ничего рассказывать о том кто, когда и зачем создал этот язык. Не все ли равно ?! Если Вам интересно, то в интернете легко найдете информацию об этом. Скажу только, что это простой и очень мощный язык для создания динамических веб-страниц. Он специально разрабатывался для этого и поэтому любая работа с текстом и данными в любом проявлении на PHP делается легко и красиво.

Сейчас пока не будем ничего говорить о его настройке. Скорее всего Вы пользуетесь уже готовым хостингом с установленным PHP, поэтому его уже настроили за Вас. Квалификация и знания администратора сервера не известны, потому как его настроили трудно сказать. Этот шаг я хочу посвятить именно этому. Моя задача страшно напугать Вас, чтобы при разработке своих программ Вы боялись за всё.


тернет полон мошенниками, хакерами, ламерами и другими компьютерными сущностями 🙂 Ваша программа должна уметь противостоять всем. Она должна справляться с ошибками настройки, которые допустил администратор, она должна адекватно обрабатывать мудреные запросы, которые пытается скормить ей хакер, или ошибочные запросы посылаемые другими. Проще говоря Вы должны научиться разрабатывать программы для Интернета на PHP так, чтобы они были готовы ко всему. Только так можно будет говорить о правильности работы, а главное безопасности ваших данных, сайта и возможно даже всего бизнеса.

Кратко попытаюсь сформулировать основные требования к хорошей программе на PHP, с которой будет мало проблем.

Первое — это встраивание программы в код HTML страницы. Думаю не секрет для Вас, что PHP файл — это обычный файл HTML со специальными вставками кода на языке очень сильно по синтаксису напоминающем С/С++ и Perl. Так вот вставки кода эти отделяются от HTML документа специальным символами начала кода <?php и его конца ?>:

  <p>HTML документ</p>  <?php  echo "<p><b>Hello world на PHP</b></p>";  ?>  <p>Опять HTML документ</p>  

Знающие люди сразу спросят, а почему именно так ? Ведь можно отделять короче, с помощью символов <? ?> или <% %>.


А я отвечу, вы правы… Но вы заблуждаетесь 🙂 И объясню почему. Такой стиль выделения кода задается специальными опциями в файле конфигурации, а именно опциями short_open_tag это для <? ?> и опцией asp_tags для <% %>. Из начальной установки «на добро» я полагаю, что администратор настроил ваш PHP мизинцем левой ноги, поэтому не хочу полагаться на качество этой работы. Поэтому говорю просто «выкиньте это из головы», чтобы не обнаружить вдруг, что Ваш навороченный скрипт на PHP не работает вообще.

Второе — контроль ошибок кода. Если настроить интерпретатор PHP так, чтобы он контролировал все возможные ошибки, то Вы сразу же защитите себя от множества подводных камней. За эту настройку отвечают несколько опций error_reporting и display_errors. Первая из них контролирует «глубину» контроля ошибок, а вторая возможность отображения ошибок непосредственно в тело создающегося документа. Для нас продпочтительнее выводить все ошибки, независимо от того, как настроен PHP администратором. В этом случае мы будем получать предупреждение о любом изъяне уже на этапе разработки. Для того, чтобы установить свои значения этих параметров на время работы программы, существует функция ini_set(). Давайте попробуем два варианта программы.

Первый вариант:

  <?php  ini_set("display_errors","1");  ini_set("error_reporting", E_ERROR);  echo "Переменная $i="",$i,""";  ?>  

Второй вариант:


  <?php  ini_set("display_errors","1");  ini_set("error_reporting", E_ALL);  echo "Переменная $i="",$i,""";  ?>  

Первой строчкой мы включаем вывод ошибок, если он оказался отключенным. Вторая строчка задает фильтр ошибок по их важности. В первом варианте используется E_ERROR для вывода только критических ошибок, а во втором E_ALL заставляет выводить все сообщения.

Если Вы сейчас попробуете сохранить этот код в файл и вызвать его из браузера, то получите следующие сообщения:

  Переменная $i=""  

И во втором случае:

  Переменная $i="  Notice: Undefined variable: i in /home/www.firststeps.ru/1.php on line 4  "

Как видите, мы переменную $i нигде не определяли, а пытаемся вывести ее значение. В принципе это ошибка не критическая, поэтому в первом случае никаких предупреждений выведено не было, а второй прямо между кавычек вставил грозное предупреждение. В случае, когда у Вас получается большой код с сотнями различных переменных одна единственная опечатка может привести к неправильной работе, а если выполнение программы зайдет в опасные участи, где удаляются или модифицируются данные, то тогда опечатка может стоить очень дорого. Поэтому вывод предупреждений о использовании несуществующих переменных становится очень важным при отладке кода, прежде чем пустить его «в бой».

У параметра error_reporting есть еще одно значение E_STRICT, которое было введено в версии PHP 5 для еще большей проверки совместимости и работоспособности кода во время работы. Поэтому для совместимости с другими версиями напишем такой код:


  <?php  ini_set("display_errors","1");  if (version_compare(phpversion(), "5.0.0", ">")==1) {  	ini_set("error_reporting", E_ALL | E_STRICT);  } else {  	ini_set("error_reporting", E_ALL);  };  ?>  

Полученный код, в зависимости от версии PHP, автоматически подстроится под нужный уровень вывода сообщений об ошибках в коде. Этот кусок я Вам рекомендую всятавлять в любой новый файл, который вы создаете, по крайней мере на этапе разработки и отладки.

www.firststeps.ru

Вот решил написать небольшое пособие, по основам программирования на php с нуля, в помощь новичкам, для изучения азов программирования.

Как это относится к сео? Да очень даже прямо. Порой бывает нужно выполнить груду однотипной рутинной работы, и не большой скриптик мог бы очень помочь и сэкономить кучу времени. Я уже не говорю за то, что порой бывают, нужны более серьезные модули или программы, заказывать которые стоит порой не по карману. Но это уже более сложные задачи, которые тут мы рассматривать не будем. Если вы действительно заинтересуетесь, то в Интернет полно умных книжек, которые так и просятся чтоб их прочли) Здесь же мы рассмотрим только основы, помогающие вникнуть в суть и перейти к самостоятельному обучению более сложных этапов.


Речь пойдет о программировании на языке PHP.
Ну приступим…

Что же такое программирование? Чем оно отличается, например от языков разметки?
Разметка – это правила, применяемые к содержимому тега .
< a href="">текст</a>
Т.е. правила показывает браузеру, что содержимое тега <a> — ссылка. И оформлять и выводить пользователю её следует тоже как ссылку.
Языком разметки мы можем только применять какие любо правила, но не можем динамически изменять данные. Т.е. мы меняем только одежду, но сделать из человека обезьяну мы не можем.

Программирование же – это написание скриптов, или иначе сценариев. Сценариев по которым будут обрабатываться входящие данные (данные которые мы предоставим программе). Писать сценарии намного сложнее чем форматировать текст. Ведь для этого мало знать синтаксис языка, нужно самому этот сценарий спланировать и реализовать средствами языка.

Перед началом изучения, нам нужно обзавестись веб сервером, с установленным PHP интерпритатором. Интерпретатор – это программа, которая читает наш код и «переводит» его на машинный язык. В качестве сервера может быть хостинг. А лучше скачать и установить денвер, тот тот же хостинг только локальный (доступен только вашему компьютеру, или вашей локальной сети). Скачать можно тут http://www.denwer.ru/ там же почитать про установку и инструкцию по работе с ним.


Теперь перейдем к началу изучения PHP.

В php, как и в других языках все, так сказать, инструменты можно разделить на несколько групп:

Переменные
– переменная это участок памяти, где хранится какая-либо информация. Переменная имеет имя, по которому к ней обращаются, что бы прочитать или изменить её содержимое. По самому названию «переменная» можно догадаться что данные в ней можно изменять в ходе выполнения программы. Переменные бывают разных типов: числовые, строковые, массивы и т.д. Чтобы показать интерпретатору что данный символ(ы) являются именем переменной используется знак доллара $.

$peremennaya –это переменная
peremennaya –а это просто бессмысленный набор символов

Переменные чувствительны к регистру (заглавным и строчным символам). Т.е. $a и $A совсем разные вещи. Тип переменной PHP определяет сам, поэтому во избежание путаницы не делайте действий с переменными разных типов. Например не прибавляйте число к массиву, ибо результат не предсказуем.

Константы – постоянные. Смысл тот же что и переменная, только константы нельзя изменять. Т.е. то что в них один раз записали, то там и будет. Этими данными можно только пользоваться.

Операторы – действия. Например: +, -, *, /, = и т.д. Полный список можно почитать справочник. Следует заметь что выражение:

$a = $b

Означает не то, что значение переменной «а» равно значению переменной «b». А то что значению переменной «a» присвоили значение «b». То есть если было:

Код: Выделить всё
$a = 1;
$b = 2;
$a = $b;

То в итоге выполнения этой программы значение $a будет равно 2.

А для сравнивания есть другие операторы: == и ===

Так же есть операторы выполняющие определенные простейшие действия, например оператор вывода, цикла, условный оператор. Но тем не менее, на всех этих простейших действиях и построены все программы.

Оператор вывода: echo "" или echo», одинарные и двойные кавычки имеют несколько разный смысл. Для вывода значений переменных кавычки не используются (одних переменных без текста). Покажу на примере:

Код: Выделить всё
$a = "привет";
echo $a; // выведет на экран: привет
echo "$a"; // Тоже выведет: привет. Но делать так не правильно
echo "$a друг";  // выведет на экран: привет друг
echo '$a друг' //  выведет на экран: $a друг

Т.е. то что в одинарных кавычках воспринимается как простой текст.

Оператор условия:

Код: Выделить всё
If (условие) {
Код1;
}
else {
Код1;
}

Смысл его таков, если (if) условие верно (существует, имеет смысл) то выполняется код1, если не верно (else), то выполняется код2. Подробнее можно почитать в книжках, ибо тут писать много.

Про операторы цикла тоже писать много не буду. Основаны они на том, что пока выполняется какое либо условие, то мы выполняем код. И так много много раз, хоть до бесконечности.
Например цикл со счетчиком:

Код: Выделить всё
for ($i=0; $i<6; $i+2) {
Код;
}

Как это работает. Переменная $i это счетчик. Первым выражением $i=0 мы задаем начальное значение, второе выражение $i < 6 – это условие, т.е пока i меньше шести мы продолжаем выполнять код. Третье выражение $i+2 это действие которое выполняется после выполнения кода. Т.е. порядок действий таков (переменную $i буду писать «и», чтоб на русс. Англ. Не переключать каждый раз:)):

«и» равно нулю. Ноль меньше шести? – да. Выполняем код. К «И» прибавляем два. «и» рано 2. 2 меньше шести? – да. Выполняем код. К «И» прибавляем два. «и» рано 4. 4 меньше шести? – да. Выполняем код. К «И» прибавляем два. «и» рано 6. 6 меньше шести? – нет. Цикл останавливается.

Одно полное действие цикла — одна ступень («и» равно нулю. Ноль меньше шести? – да. Выполняем код. К «И» прибавляем два.) называется итерация.
Так же бывают другие типы циклов: с условием, пост условием. Понять их тоже не трудно.

Функции – это уже так сказать готовые мини программы, хотя некоторые совсем не мини. В функции подаются данные и они обрабатываются по определенным правилам. Например если мы функции cos() передадим число 1, или переменную содержащую это число:

Код: Выделить всё
$a = 1;
сos($a);

то эта функция вернет, высчитает нам значения косинуса из единицы.
Кстати о слове «вернет». Вернет значит передаст. Т.е. мы может значения косинуса передать например переменной.

$b = cos($a);

Функции можно писать и самому, используя все имеющиеся средства языка, в том числе и другие функции, даже написанные самим ранее.. Это очень удобно, чтобы не писать одного и того же кода много раз, а просто каждый раз обращаться к функции.

В запасе языка PHP есть множество встроенных функций. Они различаются по типам, по области применения и т.д. полный список и синтаксисом и описанием можно узреть тут http://php.su/functions/?page=cat

А тут можно прочитать про создание собственных (пользовательских) функций http://php.su/functions/custom/?1

Объекты .Так же есть еще объекты, но это уже намного сложнее, и для начала совсем не обязательно.

Есть еще переменные окружения. Эти переменные пользователю изменять нельзя. Можно только пользоваться данными. Их значение изменяет сам интерпретатор. Для получения данных из таких переменных есть специальная функция getenv(). Переменная SERVER_ADDR содержит айпи адрес пользователя исполняющего сценарий, например просматривающего например сайт. Например мы хотим чтоб на нашем сайте пользователи могли видеть свой IP, то мы создадим «модуль» примерно такого содержания:

Код: Выделить всё
$ip = getenv("SERVER_ADDR");
echo "ваш IP: $ip";

мы сначала присвоили переменной $ip значение IP адреса пользователя, а потом его вывели на экран с помощью оператора.

В функции getenv() имя переменной нужно указывать в кавычках, как в примере.

Таких переменных очень много, найти можно в справочниках.

Теперь еще хотел бы сказать отдельно за переменные типа массив. Массив это как бы таблица.
В одной строке которой содержаться индексы (номера или имена ячеек), в во второй строке соответственно значения.

Создать такой массив можно с помощью функции array(), назовем его mass:

Код: Выделить всё
$mass = array ("привет", "пока",2+3, $ip = getenv("SERVER_ADDR") , cos($a));

Массивы можно создавать и непосредственно присвоением значений элементам (читайте дополнительную лит.ру). Только в случае, если содержимое — выражение или функция как в ячейках 2, 3 и 4 кавычки не пишутся. Иначе это уже будет не выражение а просто строка.

Как мы видим элементы массива могут содержать в себе разные типы данных: строки текста, выражения, функции. Могут даже содержать даже массивы. Т.е. получится таблицы внутри таблицы.

Элементы массива нумеруются с нуля. Не один, два ,три. А ноль, один, два и т.д.

Обращаться к элементам массива можно так:

Код: Выделить всё
Echo $mass[4];

На экран будет выведено значение косинуса, а не строка «cos($a);».

Существуют так же ассоциативные массивы, где вместо нумерации можно задавать ячейкам свои имена.
Массивы иногда очень удобно использовать. Например, есть функция file(), она читает файл построчно (строками) и создает массив, каждый элемент которого содержит все строки файла.

Например в файле test.txt у на такое содержание:

Код: Выделить всё
Вася
Пошел
В магазин

То:

$text = file(‘text.txt’);

Переменная $text становится массивом из трех элементов. Элемент с индексом 0, содержит «вася», с индексом 1 «пошел», и 2 «в магазин». Функции file() мы передаем путь к файлу. Путь должен быть верным! Данный путь действителен, только если файл лежит в одной папке со скриптом!

Вроде бы все..

Теперь давайте рассмотрим пару небольших примеров реального применения наших знаний.

Пример 1.

На днях я столкнулся с небольшой проблемой. Мне нужно было скачать все изображении со страницы http://www.volgograd.org.ru/maps/maps/rostov/ . их там очень много. По одной я бы сидел очень долго. С учетом моей скорости интернета. Подумав как можно автоматизировать задачу, вспомнил что в тоталкомандере можно автоматически загружать файлы по списку ссылок. Но опять загвоздка, как этот список от сюда вытащить. Сидеть выделять столько ссылок мышкой из исходного кода мучительно, в конце обязательно на нервах рука дрогнет и все насмарку. Посмотрев исходный код мы видим что содержание страницы – таблица. А значит, зажав кнопку ctrl мы сможем выделить столбец. Нас больше интересует столбец имен файлов.

Предварительно наведя на имя(ссылку) мы видим что имена совпадают с именами на сервере. Это уже очень хорошо. Теперь скопировав столбец имен в блокнот, получаем текстовый файл, где с каждой строки имя файла с расширением. Сохраняем файл к примеру text.txt. все фотки находятся в одном каталоге, что уже облегчает работу. Теперь нам нужно понять что же нам надо дальше делать. А делать надо следующее, с помощью функции file() мы прочитаем документ и имя каждого файла окажется в своей ячейке. потом с помощью цикла в каждый элемент массива в начало допишем адрес докаталога, и получим массив с готовыми ссылками. А потом опять циклом этот массив выведем на экран. И у нас готов список ссылок на загрузку! В блокноте глянем сколько получилось имен (строк). Их 137. И приступим.

Кстати, пока не забыл, двумя слешами // обозначаются комментарии, т.е.

Код: Выделить всё
echo "это код, который исполняется интерпретатором" ; // а это просто комментарий

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

Писать код можно в блокноте или специальных программах с подсветкой синтаксиса. Файл должен быть с расширением .php Начинаться и заканчиваться код должен так:

Код: Выделить всё
<?php
Наш код;
?>

Теги <?php и ?> показывают границы нашего кода. Все что вне них, интерпретатор выполнять не будет и просто выведет их на экран текстом.
Код с комментариями:

Код: Выделить всё
<?php
$name=file('base.txt'); // создали массив имен
for ($i=0; $i<=136; $i++) { // оператор <= значит меньше или равною. 136, то что массив начинается с 0, а не единицы. и последний элемент равен кол-во элементов минус один. а оператор ++ прибавляет единицу. в циклах использовать +1 некорректно
    $name[$i]="http://www.volgograd.org.ru/maps/maps/rostov/$name[$i]"; //обращаемся к каждому элементу по порядку, в качестве индекса используем счетчик $i. и дописываем в начало путь к каталогу.
}
for ($i=0; $i<=136; $i++) {
echo $name[$i]; //выводим поочередно каждый элемент массива
echo "<br>" ;  // выводим тег <br>, чтобы каждая ссылка была с новой строки
}
echo "<br>Готово! А все оказывается просто!"; // от себя добавил ))
?>

Данную программу можно немного оптимизировать, убрав лишний цикл. Т.к. оба цикла выполняют одну и туже работу, мы все действия перенесем в первый цикл, а второй удалим:

Код: Выделить всё
<?php
$name=file('base.txt'); // создали массив имен
for ($i=0; $i<=136; $i++) { // оператор <= значит меньше или равною. 136, то что массив начинается с 0, а не единицы. и последний элемент равен кол-во элементов минус один. а оператор ++ прибавляет единицу. в циклах использовать +1 некорректно
    $name[$i]="http://www.volgograd.org.ru/maps/maps/rostov/$name[$i]"; //обращаемся к каждому элементу по порядку, в качестве индекса используем счетчик $i. и дописываем в начало путь к каталогу.
    echo $name[$i]; //выводим поочередно каждый элемент массива
    echo "<br>" ;  // выводим тег <br>, чтобы каждая ссылка была с новой строки
}
echo "<br>Готово! А все оказывается просто!"; // от себя добавил ))
?>

в итоге за считанные секунды я получил список урлов, поставил их на загрузку, а сам пошел пить кофе :morning: и заниматься другими делами

файлы программы можете скачать тут http://dl.dropbox.com/u/16037749/primer.rar
можете запустить её и убедиться, что все работает.

Данную программу можно усовершенствовать, чтоб она список урлов выводила не на экран, а записывала в файл. Это будет вашим домашним заданием :) Где искать необходимые функции я писал выше.

Во втором примере я опишу как я писал свой модуль http://ruseo.net/moy-modul-dlya-dle-bloki-dlya-opredelennih-stranic-t2535.html. Он уже имеет самое что именно есть прямое отношение к сео и оптимизации. Но это чуть позже, а то утомился :)

Помните порой легче создать свой "мини сео софт", чем искать готовое. Его кстати может и не существовать вовсе <_<

Если вы действительно заинтересовались программированием на PHP, советую почитать книгу "PHP 5/6 и MySQL 6. Разработка Web-приложений" Дениса Колисниченко. Там очень много хорошего материала. Все понятно излагается. Читайте справочники, и главное учитесь думать и все себе представлять, и будет вам счастье! А все остальное как говорится придет с опытом :)

Буду ждать комментариев :)

ruseo.net

Так что же такое PHP программирование?

PHP – это язык программирования, также как и HTML и CSS.

Он не так уж сложен для изучения, как это может показаться вначале тем, кто решил взяться за него всерьез. Изучив всего несколько простых функций, вы уже сможете применять их на своем сайте, тем самым значительно повысив функциональность своего проекта.

Язык PHP может соседствовать в одном документе с языком HTML, так что вы можете вставлять код PHP в уже написанный HTML код. Эта особенность языка PHP позволяет вебмастеру добиться наибольшей свободы в своей работе.

Что имеется ввиду под выражением «добавить динамики»? То, что я имею ввиду — это возможность вариантности на сайте, в зависимости от того, какой запрос задает пользователь. Запрашивает ли он какую-то информацию в форме поиска, или, например, хочет выполнить какие-то вычисления – эти действия становятся возможными именно благодаря языку PHP.

Короче говоря, PHP используется для того, чтобы добавить функциональности сайту. С помощью применения одного html вы никогда бы не добились такого эффекта!


Вот несколько примеров того, что можно делать с помощью языка программирования PHP:

Математические вычисления.

PHP может выполнять все виды математических вычислений — от сложения, вычитания, умножения, деления до определения сегодняшней даты, дня недели и года.

PHP может хранить информацию пользователя.

То есть, пользователь может напрямую взаимодействовать со сценарием, например, вводить свои данные в форму контактов или в адресную книгу, задавать запрос через форму поиска, добавлять комментарии к статьям, заводить новые посты на форуме и т.д.

PHP может взаимодействовать с базами данных MySQL.

И, когда задействован этот пункт, то возможности практически безграничны.

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

master-css.com

Php программирование

Основная задача программирования — заставить компьютер выполнять определенные и нужные программисту действия. Поэтому, наша первая программа будет выглядеть так:

<?php
$me = ‘Programmer’;
makeHappy($me);

Рассмотрим подробнее что же написано в этой программе. Опытные программисты советуют читать код подобно книге, пытаясь понять смысл написанного исходя из смысла попадающихся слов и символов. Ну и использовать логику, конечно.

Для тех кто и так знает, что делает этот код — в статье для вас есть блудницы и дух черно-белого верблюда.

Мы последуем этому совету и разберем код, пытаясь понять его смысл.

Первая строчка — <?php — говорит нам о том, что дальше будет код на языке PHP. Все наши программы, написанные на php мы будем в обязательном порядке начинать с этой строчки. Иначе PHP просто пройдет мимо, даже не подозревая, какую важную задачу мы пытаемся на него возложить.

Поехали дальше.
Вторая строка:

$me = ‘Programmer’;

Первое слово, которое мы встречаем в этой строке — слово «me», на основании чего делаем вывод, что разговор тут идет о создателе данной программы. Доллар перед словом означает, что данная последовательность символов обретает свой смысл в виде переменной.

Что же такое переменная? Переменная — это место, где хранятся наши данные, а для удобства обращения, мы даем имя этой части памяти.

Если у нас есть выделенная память, то глупо ее оставлять пустой, верно? Поэтому следующим символом "=" мы говорим компьютеру, что в это место, которое мы только что создали нужно записать данные, фактически присваивая переменной какое-то значение. Поэтому данный символ называется не «равно», как мы привыкли в математике, а «оператор присваивания».

Прежде чем продолжить, хотелось сказать пару слов про лексику, которой пользуются программисты. Людям не посвященным, мир программистов кажется странным. Ведь нам ничего не стоит сделать фабрику мостов, а стринги разложить на чары. Но, как и все в программировании, лексика подчиняется логике, и имеет вполне определенную смысловую нагрузку. А еще чтение вслух программ на PHP способно призывать дух Черно-белого верблюда, который будет говорить что-то про «шаблонизатор».

Как вы догадались, речь пойдет о довольно знакомом для слуха слове «оператор». Чаще всего слово «оператор» применяется рядом с названиями техники, требующей определенных знаний и умений для работы с ней. Фактически, оператор — это кто-то, кто выполняет определенные действия, следуя задачам, поставленными начальством. Но в программе нет живых людей, способных выполнить за нас работу, а программист — единственный и бессменный тут начальник. Поэтому, когда мы говорим об «операторах» в программе, мы имеем в виду что-то, что делает для нас определенные действия. Это простейшие приказы или указания, которые компьютер выполнит в точности, как это описано в документации. Ну или не выполнит, если обиделся, устал и хочет мороженку.

Поэтому, для программистов "+" — это не «плюс», а «оператор сложения», "-" — «оператор вычитания», "*" — «оператор умножения», а "" — оператор деления. Конечно, этот список операторов далеко не полный, но смысл остается тот же — «оператор» — это что-то, что совершает определенные действия (у программистов называется «совершает операцию») над исходными данными, которые называются операндами.

Говоря языком программирования —

$a+$b

Означает оператор сложения, выполняющий операцию сложения над операндом-переменной $a и операндом-переменной $b. Ну или «а плюс б», если вы не на экзамене по программированию.

Если оператор работает не с двумя, а с одним операндом, он называется «унарным» от испанского слова «уно» — один. Старый знакомый из математики минус — пример такого оператора, совершающего операцию отрицания своего операнда. Если $a — положительное, то -$a — отрицательное, по модулю равное $a.

Подобно математическим уравнениям, мы можем комбинировать операторы вместе.
Например,

<?php
$a=1;
$b=2;
$c=-($a*2 + $b);

Чему в итоге равно $c?

Строчкой "$c=-(2*$a + $b)" мы говорим компьютеру присвоить переменной $c «отрицание суммы 2 умножить на $a и $b». Так как две строчки выше присваивают переменной $a значение 1, а переменной $b 2, то вычисление результата сводится к решению простого примера -(2*1+2), результатом которого является "-4"

Ответ: -4.

Но в нашей программе переменной присваивается не число, а последовательность букв в кавычках. Это превращает переменную в «переменную строкового типа», или просто «строку». А последовательность букв в кавычках означает ровно то что вы видите — последовательность букв. Кавычки используются для обозначения границы этой последовательности. Иногда содержимое строки не носит абсолютно никакого смысла, но у хорошего программиста нет бессмысленных мест в программе, поэтому в строке
$me=’Programmer’, мы говорим о себе, присваивая себе строку «Programmer», и с данного момента считаем себя программистом (конкретно в этой программе).

Силой кода вы объявили себя программистом, и все что осталось — это закончить мысль. Для этого служит символ ";". Этот символ завершает оператор, сообщая, что больше действий в этом операторе производиться не будет.

Например, мы хорошо знаем что будет в переменной $c после выполнения кода

<?php
$a=1;
$b=2;
$c=-($a*2 + $b);

но что будет, если мы уберем скобки и поставим точку с запятой в другое место? Скажем, так:

<?php
$a=1;
$b=2;
$c=-$a*2; + $b;

Теперь оператор присваивания для $c заканчивается не после прибавления $b, а перед ним, и следовательно, суммирование с $b не происходит, т.к. оператор заканчивается на -$a*2. Теперь значение $c — это отрицание результата умножения $a на 2.

Ответ: -2;

Закончив с присвоением себе титула программиста, мы переходим к следующей строке.

makeHappy($me);

Мы уже знаем про операторы, и их способность беспрекословно выполнять наши приказы. Но что делать, когда хочется совершить действие, выходящее за рамки возможностей оператора? Тут на помощь нам приходит функция. Если переменная дает название области памяти, то функция — это название для последовательности действий. Когда нам нужно совершить эти действия над данными, мы должны вызвать функцию.

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

Ну или просто написать имя функции, в скобках через запятую перечислив данные, с которыми эта функция будет работать.

И если эффективность первого метода сомнительна, второй способ работает всегда. И обратно — если мы видим имя, после которого в скобках идет перечисление переменных, других данных или просто ничего, то скорее всего перед нами — вызов функции.

Будучи переданными в функцию данные становятся «аргументами» функции. В качестве аргументов мы так же можем использовать операторы.

Например, func($a) вызывает функцию для аргумента-переменной $a, в то время как func($a+$b) вызывает функцию, получая в качестве аргумента результат сложения $a и $b.

Как догадаться что делает функция? Нужно взглянуть на ее имя. Хорошие программисты всегда используют в именах функции глаголы, означающие действия, совершаемые над аргументами. Стоящие рядом существительные говорят о том, что выбрано для воздействия, а прилагательные — раскрывают дополнительные особенности существительных.

Сложновато, правда? Поэтому просто читайте что написано. Если написано "printReport", то скорее всего функция печатает отчет, а если написано "eatCat", то функция отправит вашего кота есть. Или съест вашего кота.

Возвращаясь к нашему коду —

makeHappy($me)

Судя по названию, делает счастливым, а судя по списку операндов, делает счастливым программиста, создавшего ее. Данная программа является универсальным личным генератором счастья. На этом я заканчиваю рассказ о программировании — ведь теперь у вас есть универсальный способ доставить счастье кому угодно. Заказчику, начальнику и самому себе конечно. Все. Занавес, выключаем рубильник и расходимся.

Что, что простите? Функция не определена. Ой, извините, забыл маленькую деталь.

Прежде чем компьютер принесет вам счастье, вы должны научить его это делать. Как? С помощью магии, конечно! Магии программирования — так что одеваем черные плащи, берем в руки клавиатуру, учебник латыни и вперед — к созданию личных генераторов счастья. И хватит уже на сегодня — полнолуние, и у меня запланирован интересный вечер в компании старых блудниц.

habr.com

Важные аспекты функционального программирования

Начнём с терминов. Википедия определяет функциональное программирование как “парадигму программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних”. В данном способе программирования главным объектом манипуляции являются функции, в то время как в императивном программировании главным принципом является последовательное выполнение команд для достижения желаемого результата.

Когда я сказал, что главным объектом манипуляции являются функции, я имел в виду, что с ними мы можем делать всё, что угодно: передавать как аргументы в другие функции, определять функции в функциях, использовать функции в качестве возвращаемых значений! В общем, кругом одни функции.

Теперь давайте подойдём ближе к некоторым особенностями функционального программирования.

Неизменность

Свойством неизменности обладают значения, которые не могут быть изменены. В PHP и многих других языках их называют константами.

Рекурсия

Рекурсия — это один из часто используемых приёмов в функциональном программировании. При императивном подходе, для прокрутки по массивам мы можем воспользоваться циклами for или foreach, записывая текущее значение во временную переменную. Из-за принципа “неизменности”, данный подход неприемлем для функционального программирования.

Предположим, что мы хотим получить сумму элементов массива (забудьте о array_sum()). При функциональном подходе, решение данной задачи будет выглядеть так:

Если массив пустой, то сумма элементов будет равна 0. В случае если в массиве больше элементов, мы применяем рекурсию.

Чистые функции

Если функция никаким образом не меняет значения переменных, которые находятся за её пределами и не осуществляет действия по вводу/выводу данных в файл, базу данных и т.д., то такую функцию можно назвать чистой.

Возвращаемое значение чистых функций будет всегда одинаковым для одного и того же набора входящих параметров. В этом случае, мы можем не переживать за работоспособность программы в целом, если заменим вызов чистой функции на вычисленное значение. Все математические функции — это чистые функции, в то время как функции работы с датой и rand() — нет.

Функции высших порядков

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

Лямбда функции

Лямбда функции (также известные, как анонимные функции) — это ничто иное, как функции без названия. Работа с подобными функциями осуществляется через переменную, которой данная функция была присвоена.

Возможность создания подобных функций есть во множестве языков. Вы наверняка уже писали их в вашем JavaScript коде, когда реализовывали функции обратного действия при работе с ajax.

Приведённый фрагмент кода — это ничто иное, как создание анонимной функции.

В PHP лямбда функции появились в версии 5.3:

Когда речь идёт об анонимных функциях, очень важно понимать область видимости переменных. К примеру, в JavaScript анонимные функции имеют доступ к переменным за их пределами, а в PHP — нет.

Замыкания

Иногда всё же возникает необходимость иметь доступ к какой-то переменной, которая находится за пределами анонимной функции, но не является входящим параметром. Для того чтобы получить доступ к подобным переменным, можно воспользоваться замыканиями, используя ключевое слово use:

В этом случае, мы не передаём переменную как входящий параметр функции, а получаем к ней доступ, используя use.

Каррирование и частичное применение

Функции частичного применения — это функции содержащие другие функции, которые работают с набором аргументов родителя.

В PHP мы можем создавать подобные функции при помощи замыканий. Ниже вы можете найти пример вычисления объёма коробки. Все аргументы являются необязательными. Однако, если передать меньше 3х параметров, то запустится ещё и другая внутренняя функция.

В первой проверке мы проверяем количество аргументов. Если оно равно 3, то возвращаем результат. Если изначальное количество аргументов меньше, вызываем другую функцию, которая пытается найти решение с заданными данными.

Таким образом, мы можем вычислить размер коробки, передав сначала один аргумент, а потом и другие.

Каррирование — это специальный вид функции частичного применения, когда каждый аргумент может быть принят в отдельную функцию. Что-то типа f(x,y,z) to f(x)(y)(z). В PHP такой синтаксис невозможен, но реализовать принцип можно.

Плюсы и минусы

В использовании функционального подхода есть множество плюсов. К примеру, анонимные функции можно использовать в качестве функций обратного вызова. Как в фрэймворке Slim:

В данном примере, анонимная функция запустится, когда пользователь зайдёт по адресу home.

При функциональном подходе нужно писать функции, которые выполняют какую-то свою узкопрофильную задачу, не затрагивающую какие-то глобальные вещи. Следуя данной парадигме, ваши программы не будут разбухать.

Однако стоит заметить, что не все приёмы данной парадигмы можно реализовать в PHP. В качестве примера, можно привести работу с параллельными процессами.

Также не всегда можно определить сложность рекурсивной функции и её эффект на производительность кода. Иногда стоит отойти от функционального принципа.

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

Итог

Функциональное программирование — это больше, чем просто подход. Это больше способ мышления, причём вне зависимости от языка.

ruseller.com

Краткое описание

В работе разработчик PHP использует старейший язык программирования PHP, который был разработан в 1995 году. Скриптовый язык за годы существования был усовершенствован, поэтому сегодня его можно считать одним из самых популярных. С помощью PHP можно создавать приложения и программы, страницы сайтов, динамические и статические сайты, скрипты (чат, гостевая книга и другие).

PHP разработчик  — весьма востребованный специалист, который может работать как самостоятельно, так и в команде, состоящей из руководителя, веб-дизайнера, человека, специализирующегося на СЕО, и других специалистов.

Человек, который работает в этой сфере, имеет глубокие знания о скриптовом языке PHP, а так же HTML, MySQL, JavaScript. Специалист, отличающийся математическим мышлением, должен уметь работать в команде, формировать ТЗ, знать технический английский язык.

Особенности профессии

Специалисты пользуются огромной популярностью, что положительно сказывается на размере их оклада. Востребованы программисты PHP в крупных и маленьких компаниях, ведь они имеют огромный багаж знаний, что делает их популярными и универсальными специалистами.

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

  • разработка страниц или модулей сайта, для чего используется язык PHP;
  • тестирование созданного продукта;
  • выявление и исправление ошибок;
  • запуск продукта;
  • администрирование;
  • обеспечение безопасности разработанного продукта;
  • оптимизация производительности;
  • усовершенствование функциональности продукта;
  • исправление багов;
  • работа с техническими специалистами (ТЗ, контроль, консультации);
  • интеграция созданного продукта со всеми видами бизнес-систем, которые необходимы заказчику;
  • работа с документацией, сопровождение продукта.

Карьерный путь представителя профессии достаточно длинный, ведь заказчик, который оплачивает работу программиста PHP, хочет видеть в штате опытного специалиста с внушающим кейсом, содержащим хотя бы 2-3 успешных сайта.

Плюсы и минусы профессии

Плюсы

  1. Уникальность и перспективность профессии.
  2. Постоянное самообучение.
  3. Опытные программисты PHP получают большие гонорары за свою работу.
  4. Свободный график работы, возможность трудиться удаленно.
  5. Возможность работать в любой точке мира.
  6. Можно работать, получая профильное образование.

Минусы

  1. Медленный карьерный рост.
  2. Работа отнимает очень много времени.
  3. Специалисты часто работают без трудоустройства, что автоматически исключает отпуск, оплату больничного.
  4. Сидячая работа.
  5. Необходимость проводить более 8 часов в день за компьютером.
  6. Нечастое общение с людьми.
  7. Если программист PHP работает в маленькой компании, то он выполняет большую часть работ по созданию, верстке, тестированию сайта, общается с клиентами и т. д.

Важные личные качества

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

Важнейшие черты характера:

  • любознательность;
  • упорность;
  • профессиональная ответственность;
  • дисциплинированность;
  • решительность;
  • умение устанавливать социальные контакты;
  • творческая жилка.

Если специалист желает достичь карьерных высот, то он должен уметь бороться со своей ленью и замкнутостью. Работать в этой сфере будет достаточно сложно людям, у которых наблюдаются проблемы со зрением, заболевания суставов, варикозное расширение вен и другие заболевания, обостряющиеся под воздействием пассивной работы за ПК.

Обучение PHP программиста

Высшее образование

Будущие программисты PHP должны иметь диплом о высшем образовании, в противном случае они смогут работать только фрилансерами. Направление — техническое, поэтому документы стоит подавать в вузы, в которых есть следующие программы обучения:

  • «Информатика и вычислительная техника»;
  • «Прикладная математика и информатика»;
  • «Программная инженерия»;
  • «Информационные системы и технологии».

Специальности достаточно сложные, бюджетных мест много, обучаться можно в любом уголке России, сдав ЕГЭ по математике и информатике, ИКТ и русскому языку. Для работы необходимо хорошо знать разговорный и технический английский язык, поэтому профильные курсы необходимо начинать посещать на стадии обучения в вузе.

Место работы

Программисты PHP смогут найти отличную работу в следующих сферах:

  • рекламные агентства;
  • компании, специализирующиеся на продажах в интернете;
  • кадровые холдинги;
  • банковская система;
  • производственные компании;
  • интернет-магазины.

Оплата труда

Карьерный путь специалисты начинают с маленьких компаний, чаще всего им предлагают должность помощник PHP программиста. Получить эту работу могут специалисты без опыта, заработная плата в этом случае составляет 30000-50000 руб. Приступить к работе по профилю можно будет через 2-3 года.

Профессиональные знания

  1. Скриптовый язык PHP.
  2. Знание других языков программирования на базовом уровне (Java, С++).
  3. Технический английский язык.
  4. Знание web-технологий (HTML, Ajax, WordPress, SQL и другие).
  5. Системы управления содержимым.
  6. Объектно-ориентированное программирование.
  7. Умение работать с пакетами программ для обработки видео, изображений, создания графики.
  8. Системы управления базами данных.

www.profguide.ru

Все события произошли ещё в июне прошлого года, но написать о всём том решил я только сейчас. Почему? Не знаю! Хотел ещё тогда, но как-то руки не доходили, а потом уже подзабылось как-то и стало не очень актуально, но сейчас по некоторым причинам немножко снова взялся за этот проектик, вот и вспомнил, захотелось поделиться теми классными впечатлениями и событиями, что были тогда, в самый первый раз 🙂

Кому-то покажется это всё ерундой и чем-то не интересным, а кто-то, быть может, с интересом прочитает, каждому своё, но я чувствую, что сейчас я должен это всё написать.

Дело в том, что общался я тогда с одной замечательной девушкой, хорошо общались мы, было круто! Но сейчас история общения и что было дальше не особо интересна, не о ней речь. Единственное, что нужно знать, что девушка та очень любит сов в любом их виде (нет-нет, про их поедание речи не идёт!). И захотелось мне сделать подарок ей на день рождения, да не обычный какой-нибудь, а особый, какого раньше ещё не делал никому! Решил я сделать для неё квест небольшой. Но делать просто квест одноразовый — это как-то не круто. Поэтому решил написать я небольшой квестовый движок, чтоб потом можно было какие угодно задания туда писать и всё менять на ходу, без необходимости лезть в какие-то исходники и вручную править код, а чтоб всё красивенько и удобненько работало через интерфейс приятный, да и чтоб можно было потом и другие квесты тоже проводить, штука-то полезная и в перспективе тоже, ведь можно применить много где.

Начал разработку этого квестового движка. По сути, это просто определённой функциональности сайт с адаптивной вёрсткой, чтоб автоматически подстраивался под размер экрана, чтоб и с телефона было удобно пользоваться, и с устройств с большим экраном тоже.

Делать всё это было весьма интересно! Вот ещё раз убедился, что когда под вдохновением делаешь что-то для кого-то, то мозг намного больше энергии на это всё выделяет, как-то намного охотнее и интереснее это делать, да и приятнее тоже.

Пока писал движок, в это же время готовил разные части подарков, которые должны были тоже участвовать в квесте, хоть я пока точно не представлял, как именно это будет. Среди них было два набора стикеров с совами (заказывал где-то), кружка с собственным дизайном, тоже с совами и ещё другими животными; и ещё вручную на маленьком прямоугольном кусочке фанеры выжег тоже сову, получилась прикольная такая фанерная карточка с совой, пусть и немного криво выжженой, потому что большим жалом маленький рисунок не очень удобно выжигать, особенно, когда опыта в этом особо нет.. )

Ещё подготовил аудиозапись специальную, FM-передатчик, роутер с OpenWRT на борту и настроенным веб-сервером и Wi-Fi с определённым паролем, были некоторые задумки по этому поводу тоже.

Две недели в свободное время я пилил движок (больше по ночам, днём другие дела были), наверное, даже жил этим, представлял, что и как можно сделать, какие задания и т.д. Но точного сценария так и не было.

В движке есть поддержка заданий, карта, инвентарь. Меня очень пёрло от мыслей о том, что можно связать реальность и виртуальность, потому что предметы, что были в реальности, я загнал и в движок тоже, они могли выдаваться за задания и находиться в инвентаре игрока. Карта нужна для того, чтоб знать, куда идти, если это необходимо по заданию (заодно и я мог наблюдать, где находится сейчас она). А в самих заданиях можно писать текст, по разному оформленный, картинки вставлять, там удобный редактор, позволяющий делать всё это. В заданиях можно указывать координаты, куда нужно идти; запрашивать определённый ответ, присваивать определённый текст кнопки для выполнения задания, чтоб можно было не просто на «Дальше» нажимать, а именно в зависимости от тематики задания указывать определённый текст на кнопке. Также можно указать предмет из инвентаря, необходимый для выполнения задания, а при завершении задания можно выдать какой-то предмет, а также есть возможность указать следующее задание, таким образом строится цепочка заданий в нужном порядке. Хотел сделать возможность разветвления: разные кнопки — разные следующие задания, но подумал, что это не особо нужно было, на тот момент достаточно было и одной сюжетной ветки, к тому же, времени было мало. Ещё были мысли тогда про такой тип заданий, где нужно придти в определённую точку на карте, и лишь после этого можно будет продолжить, но тоже пока реализовывать не стал.

Свой подарок «вручить» решил я на пару дней позже, чем был сам день рождения, чтоб не было слишком много впечатлений было в один день, да и просто не успевал я немного.

Но вот настал тот самый день!
Помню, это была пятница, шёл дождик. Я назначил время старта на 3 часа дня. А сам только в два часа закончил делать движок. И то, не всё до конца закончил, со стороны «админки» там вообще почти ничего нет, кроме самого необходимого минимума. И вот за час до начала игры пошёл готовить локации. Опять же, не было ни сценария, ни плана, были просто разные части подарков и некоторые идеи. И лил дождь. Ввиду того, что по работе есть много знакомых в городе, потому что мы обслуживаем разные организации, то пошёл я в первую очередь именно к тем людям, которых знал уже, в фирмы какие-то, в магазины. Пришёл, объяснил, что придёт девушка, отдаст шишку лесную (они у неё заранее были, в день рождения отдал вместе с коробочкой-инвентарём, а шишки — это как валюта), а ей в обмен на шишку должны будут отдать очередной предмет.

На каждом предмете был указан код, который необходимо было ввести в движке для выполнения задания.

Ходил также и к незнакомым людям, в пиццерию, в цветочный магазин, помню, зашёл, объяснил всё это той девушке, что там работала, она так заинтересовалась и так серьёзно к этому отнеслась, что даже на бумажке инструкции для себя записала и тоже ждала с нетерпением нужного времени!

В офисе на работе на окошко поставил плеер с зацикленной аудиозаписью, в которой бот Максим говорил своим голосом нужный циферный код, и всё это транслировалось по обычному радио, на частоте 108.0 FM. Для передачи использовал недорогой FM-трансмиттер, купленный на алике и собранный вручную (это был DIY-комплект).

Недалеко от рабочего офиса находится другая обслуживаемая нами фирма, туда поставил небольшой роутер на окошко, а в роутере… А об этом позже 🙂

За пол часа до начала игры сел писать сценарий. Было известно, где какие части подарков находятся, в каких локациях, и какие коды на них написаны. Задания, состоящие просто из текста были не так интересны, поэтому решил привлечь кота Пушина, будто бы он обращается к нашей главной героине и просит помощи в поиске пропавших сов! Сначала было пару заданий для обучения, где показано было, как вводить ответы, как по карте ориентироваться, а потом уже началась сама история сюжетом, который был буквально на ходу придуман.

Выглядело это всё вот так:

pikabu.ru


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.