Поездка в Норвегию в марте на машине из Питера. Красота дороги, фьордов, снега и гор. «Беспощадный, но не бессмысленный»: Сергей Расшиваев — о серфинге в России Изречение blog detail php

18.11.2017

«Беспощадный, но не бессмысленный»: Сергей Расшиваев - о серфинге в России

Интервью Расшиваева Сергея на Perito Burrito рассказывающее о серфинге в России.

С 10 по 19 ноября в Москве пройдет международный фестиваль экшен-спорт-фотографии и кино S-Fest. Гостей ждут многочисленные лекции, мастер-классы, а также выставка фотографии и кинопоказы, посвященные сноубордингу, серфу и скейтбордингу.
На фестивале с лекцией выступит Сергей Расшиваев, президент Российской федерации серфинга и один из лучших серферов России (а еще Сергей катался на доске во всех пяти океанах мира, включая Северный Ледовитый!). Вместе с коллегой по цеху Константином Кокоревым он расскажет о серфинге в России — например, о том, где искать лучшие споты и как не бояться холодной воды. Расписание и дополнительная информация о лекции - на сайте фестиваля.

Камчатка

Редакторы PRTBRT не упустили возможности расспросить Сергея о серфинге в России.


Как вообще появилась идея кататься на серфе в России? Морей вроде много, но подходящих волн и инфраструктуры, кажется, нет.


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

Как тебе стало понятно, что это можно и нужно развивать? Был ли кульминационный момент?


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

Какие места сейчас - хотспоты в России для серфинга?


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

Калининград

В каком регионе тебе больше всего нравится кататься?


Я больше всего люблю родные питерские волны. Когда впервые покатался, не очень понял, что к чему. Но постепенно оказалось, что на заливе и на Ладоге бывают суперволны. Это очень крутое чувство - иметь домашний спот.

Есть ли какое-то общее сообщество про серфинг в России?


Такого нет, все ресурсы тематические. Соревнования - это сайт Федерации серфинга России. Но там бывают не все анонсы, так как местные ребята часто организуют что-то сами.
Серф-лагеря вообще мегаобширная тема. Особенно выездные. Очень низкий уровень входа. Взял доску, и все - инструктор. Много полезной информации о серфинге в России можно найти и на моем сайте .

Новичку в серфинге: можно ли встать на доску где-то в РФ или надо ехать за рубеж? Там легче, дешевле, лучше инструкторы, инфраструктура? Сколько нужно времени новичку, чтобы у него что-то начало получаться? Как можно тренироваться дома?


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

Камчатка

Изменилась ли ситуация с серфингом в России благодаря тому, что его включили в Олимпиаду? Если да, то видишь ли ты эти изменения?

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

Самое экстремальное место в РФ, где ты катался? Самая необычная ситуация в которой ты оказывался?


Самым экстремальным для меня было катание в Арктике. Однажды не рассчитав размер волн, я чуть не утонул.

Было много забавных историй. Например, однажды после первого чемпионата в Калининграде мы с Женей Исаковым бежали на закате, чтобы успеть поймать последние лучи солнца. Посерфить нам оставалось минут 30-40. Поэтому именно бежали. Дело было на Куршской косе, на которой любят отдыхать местные жители. Уже почти добежали до пляжа, и тут навстречу нам большая и нетрезвая компания, которая начинает кричать: «Оба-на!..»
В моей голове сразу разворачивается неприятный сценарий. Как минимум сломанные доски. Но Женек парень крепкий, так что, думаю, отобьемся. Все это происходит в моей голове за доли секунды. Компания тем временем продолжает: «Оба-на! Так это же калининградская федерация серфинга! Давайте, пацаны, зажгите там!» Мы машем им приветственно и бежим дальше в воду. Все недолгие 40 минут на воде. Каждый подъем на доску сопровождался одобрительными криками. В такие моменты становится ясно, что мы продвигаем серфинг среди наших соотечественников и делаем это достаточно успешно.

Учишь ли ты сам серфингу? Если да, то как к тебе можно попасть на учебу?

08.06.2017

12 наивных вопросов от начинающих серферов.

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

Профайл: Сергей Расшиваев

Португалия

В какой стране начинать серфить?

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

Правда ли, что Бали - это лучшее место в мире для серфинга, или вокруг него создан большой миф?

Самого лучшего места для серфинга не существует - оно у каждого свое. Одним нравится путешествовать по Европе, другим - по Америке, а третьи и вовсе разъезжают по всему свету в поисках больших волн. Бали - это действительно хороший вариант для тех, кто хочет встать на серф. На этом индонезийском острове буквально все дышит серфингом: здесь множество серф‑шопов, школ и кемпингов. Но так же много и людей - что в воде, что на берегу, и надо быть готовым к тому, что на одну волну всегда находится много желающих. Чтобы не разочароваться в волнах и Бали в целом, лучше всего ехать туда во время нашего лета (у них в это время зима), когда пляжи и вода становятся чище, а волны - больше. Главное заблуждение новичков заключается в том, что они думают: ага, раз на Бали самые лучшие волны, значит мы там быстро научимся кататься. Волны на Бали действительно отличные, но ни один новичок не сможет оценить самые знаменитые споты острова. Для этого нужно кататься очень долго и очень прилично.

Из других индонезийских спотов очень советую место под названием G‑Land на острове Ява с известной во всем мире левой волной. Серф‑кемп находится в джунглях прямо напротив этой волны, и вокруг совершенно спокойно разгуливают вараны и обезьяны. Там очень красивые закаты и пляжи, поэтому съездить к этому споту стоит, даже если вы не собираетесь кататься.

Норвегия



Как новичку подготовиться к занятиям серфингом? Какие упражнения будет полезно выполнять до отпуска?

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

Доминикана

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

Камчатка

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

Объединенные Арабские Эмираты

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

- В самостоятельном обучении есть масса минусов и практически нет плюсов. 99 процентов решивших сэкономить в итоге тратят свои деньги и драгоценный отпуск впустую, так не научившись тому, чему могли бы. То, что они выучивают за неделю, в школе проходят за одно занятие. Прогресс идет страшно медленно, ошибки никто не объясняет. Ясное дело, что после таких мучений многие люди забрасывают серфинг насовсем.

Хотя вариантов, где найти себе инструктора, множество. Можно нанять местного серфера‑аборигена (главное, чтобы он не был обычным парнем с улицы и имел международный сертификат инструктора), либо записаться в серф‑школу. Или поселиться в серф‑кемпинге, что я считаю самым оптимальным решением. В кемпе вы отделены от потока туристов и сконцентрированы на серфинге практически 24 часа в сутки. Получаете максимум за минимум времени. Пять или шесть дней в неделю вы только и делаете, что серфите, не вылезая из воды. Помню, что после своей первой поездки в португальский серф‑кемп я буквально умирал - так безумно болело все тело.

Калиниград

Мальдивы

Какой серф подходит новичку? Стоит ли учиться на разных досках или лучше некоторое время провести на одной?

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

Доминикана

Если все же не терпится стать обладателем серфа, обратите внимание на такие всемирно известные бренды, как Firewire, Rusty, Channel Island и Mayhem. Только отправляйтесь в магазин со знающим человеком, иначе не угадаете и купите совершенно не то, что вам в данный момент нужно.

Италия, Сардиния

Как выбрать себе серфинг‑школу из огромного количества тех, что существуют? С виду‑то они все одинаковые.

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

Камчатка

Не стоит полагаться на турфирмы. Люди, которые в них работают, никогда не вставали на доски и стряпали свои «серферские турпакеты» буквально на коленке. Займитесь подбором школы сами, все‑таки это очень ответственный момент. Кстати, бронировать «учебное место» иногда лучше заранее, чтобы вы были уверены, что вас ждут и тренер, и доска. Иногда за бронь школы даже делают скидки.

Камчатка

Есть такое понятие, как международный кодекс серфера - свод правил, как вести себя в воде. Какие из них наиболее важны? И посоветуйте, как побороть свой страх перед волнами.

Есть пять правил, которые должен вбить себе в голову серфер‑новичок: уважайте океан, себя и людей вокруг вас; слушайте, что говорит вам инструктор; соблюдайте правила безопасности; не «крадите» чужую волну; не мусорьте. Безусловно, есть много других правил и нюансов. Например, не забывайте мазаться кремом от загара, даже если пасмурно, и не заходите в воду глубже, чем по грудь (катание сильно изнуряет, и у вас может не остаться сил, чтобы добраться до берега вплавь). Если катаетесь в одиночку, выберите песчаный пляж, на котором волна не падает прямо у берега, и есть безопасная пена - то есть то, что образуется после обрушения волны. Именно на пене проходят первые уроки серфинга. На ней ездят к берегу и отрабатывают технику.

Норвегия

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

Шри Ланка

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

- Мои любимые серферы - это Мик Фаннинг и Келли Слейтер. Они оба ведут здоровый образ жизни, мне это близко. Стиль Мика - это скорость и идеально отточенные классические трюки (смотрите видео). Стиль Келли даже не описать, он просто лучший, и в свои 40 лет делает такие трюки, о которых другие и не мечтают (видео). Не пропустите шикарные кадры с турнира Rip Curl Pro Bells Beach 2012, где Келли с Миком соревнуются в финале.Из молодежи мне нравятся Джулиан Вилсон (видео) и Джон Флоренс - оба катаются очень сильно и практически все время проводят в воздухе!

Камчатка

Чему можно научиться за две недели отпуска?

Немногому. Главное за это время хотя бы научиться стоять на доске. Освоить трюки точно не успеете - для этого потребуются несколько месяцев. Хотя серфинг настолько сложный вид спорта, что в нем любой поворот - это трюк. Самым простым трюком, который на деле является одним из главным элементов в катании, считается «боттом тёрн» (bottom turn) - когда поворачиваешься на дне волны после скатывания с нее. Один из самых сложных трюков - «труба»: когда серфер едет внутри закручивающейся волны. Если вы за время отпуска научитесь просто хорошо ехать вдоль волны - это будет очень хороший результат.



Норвегия

Великобритания, Уэльс

Имеет ли смысл «гнаться» за конкретным местом с хорошими волнами или лучше приезжать в те места, где количество спотов не ограничено?

Смысла искать «тот самый спот, о котором я читал в каком‑то журнале» нет, особенно если вы делаете первые шаги в серфинге. Тем более что все рейтинги серф‑спотов субъективны. Пляжей, которые идеально подходят для новичков, тысячи. Не советовал бы только ехать на Мальдивы - они больше подходят опытным парням. Главное - попасть в сезон и приехать туда, где есть волны. Достаточно подробно о качестве и типах волн в тысячах спотов по всему миру написано на сайте Wannasurf.com, я постоянно им пользуюсь. Имейте в виду, что никто не знает местные волны лучше, чем серферы‑аборигены. Если я оказываюсь на новых пляжах, то часто обращаюсь к гидам, которые и хорошую волну помогут найти, и подскажут, где может быть опасно из‑за камней или кораллов. Помните: не зная броду, не лезьте в воду. В серфинге это тоже работает.

Франция

Как не растерять приобретенные навыки, вернувшись домой?

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

Топ-5 стран для новичка в серфинге по версии Сергея Расшиваева

Испания. Десятки мест, где можно кататься, есть в провинции Астурия. Особенно хороши споты у городка Вильявисиоса, который находится в устье реки, где делают сидр и играют на волынках. Не пропустите местный пляж Родилес.

Португалия. Мне нравится провинция Алгарве. Это первое место, где я серфил, и оно до сих пор остается одним из моих любимых. Кстати спот там так и называется - Любимый пляж (Praya do Amado).

Марокко. Одно из самых серфовых мест - поселок Таразут, что неподалеку от Агадира. В 4 километрах от него находится поселок Тамрат, куда тоже стоит обязательно съездить.

Индонезия. Это, разумеется, Бали с множеством самых разнообразных пляжей. Но там бывает слишком многолюдно, поэтому серферы поопытнее любят сбегать на соседние Яву, Ломбок и Лембонган.

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

Владивосток

ЦЕНА ВОПРОСА

Самая дешевая страна для серфинга (как, впрочем, и для многого другого) - это Индонезия. Школу там можно найти за $ 250 в неделю, а если кататься самостоятельно, то и вовсе придется платить лишь за аренду доски - то есть $ 5-8 в день. Однако до Бали еще нужно долететь, поэтому прибавьте к стоимости обучения и проживания еще 1000-1500 долларов за авиабилеты туда‑обратно. Стоимость серф‑кемпинга в Марокко стартует от 400 евро в неделю (включены питание, проживание, обучение), примерно такие же цены в Португалии. На Канарах неделя обучения начинается от 300 евро (плюс 10-15 евро в день на еду), на материковой Испании - от 400-500 евро. Цены на перелеты в Европу и Африку зависят от авиалиний и сезона, иногда можно поймать вполне выгодные предложения.

Арктика

Интервью готовила Мария Соснина

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

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

2. Sebastian Bergmann. Пионер автоматизированного тестирования в PHP. Создатель фреймворка для тестирования PHPUnit и сооснователь thePHP.cc .

3. Jordi Boggiano. Ведущий разработчик Composer . Участвует в разработке Symfony2. Партнер в Nelmio .

4. Dries Buytaert. Создатель и лидер проекта Drupal . Президент Drupal Association. Сооснователь и технический директор в Acquia .

6. Evan Coury. Сертифицированный инженер по PHP 5.3 and Zend Framework, регулярный докладчик на конференциях по разработке. Создатель Roave .

7. Cal Evans. Архитектор. Представитель разработчиков в GetPantheon .

8. Anthony Ferrara. Разработчик с экспертизами в безопасности, производительности и ООП. Разработал новый, более безопасный password API в PHP 5.5 .

13. Emma Jane Hogbin. Друпал разработчик, темизатор, и опенсоурсный гик. Соавтор книги Front End Drupal и автор Drupal User’s Guide .

14. Rasmus Lerdorf. Создатель PHP.

15. Matthew Weier O’Phinney. Архитектор open-souce ПО. ПМ в Zend Framework . Сертифицированный zend инженер и член Zend Education Advisory Board. Спикер и писатель.

16. Taylor Otwell. Создал

  • Перевод
  • Tutorial

На всякий случай - это перевод (многие не замечают этого в интерефейсе ХабраХабра).
«Fat-Free» можно перевести с английского как «Обезжиренный» - фреймворк и в самом деле поражает своим размером (55 КБ) и скоростью работы.

Я наконец-то нашёл лёгкий и быстрый фреймворк. Он умещается в файл размером всего 55Кб и имеет множество возможностей, о которых вы можете узнать на его , поэтому не буду повторяться. Вместо этого я решил сделать небольшой учебник, из которого вы узнаете как сделать свой блог на этом фреймворке.
Вам понадобится PHP 5.3 на сервере. Я использовал Ubuntu 11.04 для написания этого учебника, на которую легко устанавливается эта версия. Если вы работаете на RHEL или Centos то я предлагаю заглянуть вам на IUS Community Project для получения последней версии PHP.

Установка

Fat-Free Framework.
Fat-Free Framework работает одинаково хорошо и в корне сайта, и в подкаталоге. Я предполагаю, что вы будете использовать подкаталог, поскольку вам не нужно будет создавать отдельный сайт для этого урока.
Создайте папку с именем blog и распакуйте содержимое фреймворка в неё. Это должно выглядеть примерно так:

Поднимитесь на один уровень вверх в иерархии каталогов и установите следующие разрешения:

Sudo chgrp -R www-data blog sudo chmod -R 775 blog
Если вы используете Apache, то mod_rewrite должен быть включён. Измените.htaccess и откорректируйте RewriteBase так, чтобы он указывал на папку с блогом. Например: RewriteBase /blog.

Уже сейчас вы можете зайти в папку blog на сервере и увидеть такую страницу:

(Как только вы посетите эту страницу, будет будет создана специальная папка с кешем - не беспокоитесь об этом).

Начало

Всё что нам нужно уже есть в Fat-Free Framework.

Давайте сначала отредактируем главную страницу и создадим подключение к базе данных.

Откройте файл index.php . Закомментируйте параметр кэширования и установите уровень отладки, чтобы вам легче было заниматься разработкой:


Для установки соединения с базой данных добавьте следующее между командами set и run :

F3::set("DB", new DB("mysql:host=localhost;port=3306;dbname=ИмяВашейБазыДанных", "ИмяПользователя", "Пароль"));
Все файлы пользовательского интерфейса находятся в каталоге ui - вы можете удалить welcome.htm и style.css отсюда, так как они просто используются домашней страницей по-умолчанию.

Маршрутизация

Вы должны сказать фреймворку метод запроса (GET, POST, PUT и т.д.), адрес для запроса и как ответить на этот запрос.

Маршрут для домашней страницы:

F3::route("GET /", function () { // делаем что-нибудь });
Эта безымяная функция будет содержать логику для заполнения страницы.

Для просмотра записи блога:

F3::route("GET /view/@id", function () { $id = F3::get("PARAMS["id"]"); });
Это позволяет фреймворку ожидать URI-параметр и присваивает его переменной PHP в функции.

Теперь маршруты для администратора:

// Главная страница администратора F3::route("GET /admin", function () { }); // Страница для добавления материала F3::route("GET /admin/add", function() { }); // Для редактирования материала F3::route("GET /admin/edit/@id", function() { $id = F3::get("PARAMS["id"]"); }); // Служебная для принятия запросов F3::route("POST /admin/edit/@id","edit"); F3::route("POST /admin/add","edit"); function edit() { } // Для удаления F3::route("GET /admin/delete/@id", function() { $id = F3::get("PARAMS["id"]"); });
Обратите внимание, что мы используем одну и ту же функцию для обработки добавления и редактирования сообщений, по этому она имеет имя (остальным функциям имена можно не давать).

Модели

ORMs в Fat-Free Framework делает всю грязную работу за вас - никаких директорий, файлов или кода.

Вот SQL запрос, который создаст 2 таблицы, необходимые для этого урока:

ХабраХабр почему-то не хочет красить этот кусок - прим. перев.

CREATE DATABASE `blog` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; USE `blog`; CREATE TABLE IF NOT EXISTS `article` (`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `timestamp` datetime NOT NULL, `title` VARCHAR(128) NOT NULL, `summary` VARCHAR(128) NOT NULL, `content` text NOT NULL, `author` VARCHAR(128) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO `article` (`id`, `timestamp`, `title`, `summary`, `content`, `author`) VALUES (1, "2011-07-28 02:03:14", "Hello World!", "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut ", "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", "Mr White"), (2, "2011-07-28 02:03:14", "More Hello World!", "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut ", "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", "Mr Green"); CREATE TABLE IF NOT EXISTS `user` (`id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) NOT NULL, `password` VARCHAR(255) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO `user` (`id`, `name`, `password`) VALUES ("1", "admin", "password");

Для посетителей

Теперь нам необходимо создать экземпляр объекта Axon, чтобы получить массив результатов. Также мы установим полученное значение в переменную articles.

$article=new Axon("article"); $articles=$article->afind(); F3::set("articles",$articles);
Вы бы могли объединить последнии 2 строчки в одну F3::set("articles",$article->afind()); , но для удобства я оставил две.

Для использования шаблонов нужно создать базовый файл макета в папке ui с именем layout.html :

{{@html_title}}
Движок использует шаблон {{@имя}} для получения значения переменной.

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

Blog Titles

{{trim(@item["title"])}} by {{@item["author"]}}

{{@item["summary"]}}


Теперь, когда шаблон готов, мы можем завершить код в index.php для его отображения:

F3::set("content","blog_home.html"); echo Template::serve("layout.html");
Шаблон для ускорения работы приложения будет переделан движком в php код.

Полный пример будет выглядеть так:

F3::route("GET /", function () { F3::set("html_title","Home Page"); $article=new Axon("article"); F3::set("list",$article->afind()); F3::set("content","blog_home.html"); echo Template::serve("layout.html"); });
Теперь мы дожны сделать страницу, на которой будет находиться полный текст записи:

F3::route("GET /view/@id", function () { $id = F3::get("PARAMS["id"]"); // создаём объект Axon и ищем в нём наш id $article=new Axon("article"); $article->load("id="$id""); // устанавливаем переменные для шаблона F3::set("html_title",$article->title); $article->copyTo("POST"); // подключаем сам шаблон F3::set("content","blog_detail.html"); echo Template::serve("layout.html"); });
Шаблон страницы будет находиться в файле blog_detail.html :

{{@POST.title}}

Published: {{@POST.timestamp}} by {{@POST.author}}

{{@POST.content}}

Back to Homepage

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

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

F3::route("GET /admin", function () { F3::set("html_title","My Blog Administration"); $article=new Axon("article"); $list=$article->afind(); F3::set("list",$list); F3::set("content","admin_home.html"); echo Template::serve("layout.html"); });
Шаблон хранится в файле admin_home.html :

Панель администратора

Добавить запись

Заголовок Дата Автор Управление
{{@item["title"]}} {{@item["timestamp"]}} {{@item["author"]}} Изменить Удалить

Результат будет примерно такой:

Теперь создадим форму для редактирования и добавления записей в файле admin_edit.html :

Edit

{{ @message }}










Обратите внимание, что есть области для отображения проверки сообщений.

Теперь код для маршрутов:

F3::route("GET /admin/add", function() { F3::set("html_title","My Blog Create"); F3::set("content","admin_edit.html"); echo Template::serve("layout.html"); }); F3::route("GET /admin/edit/@id", function() { F3::set("html_title","My Blog Edit"); $id = F3::get("PARAMS["id"]"); $article=new Axon("article"); $article->load("id="$id""); $article->copyTo("POST"); F3::set("content","admin_edit.html"); echo Template::serve("layout.html"); });
Теперь напишем функцию для редактирования, о которой писалось ранее:

Function edit() { // Reset previous error message, if any F3::clear("message"); $id = F3::get("PARAMS["id"]"); $article=new Axon("article"); //load in the article, set new values then save //if we don"t load it first Axon will do an insert instead of update when we use save command if ($id) $article->load("id="$id""); //overwrite with values just submitted $article->copyFrom("POST"); //create a timestamp in MySQL format $article->timestamp=date("Y-m-d H:i:s"); $article->save(); // Return to admin home page, new blog entry should now be there F3::reroute("/admin"); }

Аутентификация

Добавьте следующие строчки:

// сообщаем фреймворку таблицу с пользователями и передаём значения F3::set("AUTH",array("table"=>"user","id"=>"name","pw"=>"password")); $auth = Auth::basic("sql"); // вход удачный if ($auth) { // сохраняем в сессии F3::set("SESSION.user",$auth->name); // отображаем страницу администратора F3::set("content","admin_home.html"); } else { // вход неудачный F3::set("content","security.html"); }
security.html может выглядеть так:

You must supply valid login details.

Ещё добавьте строчку перед Template::serve:

If (!F3::get("SESSION.user")) F3::set("content","security.html");
Вот и всё. Вы также можете перенаправить пользователя на главную страницу:

If (!F3::get("SESSION.user")) F3::reroute("/");

Итог

Вот так просто можно написать блог с панелью администратора и базой данных.

Скачать готовый пример можно тут -

Цикл материалов «Создание блога на PHP»

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

Почему мы выбрали именно блог? Блог - наиболее популярный формат сайта. Если вы научитесь создавать с нуля блог, без проблем можно расширить свои умения и на интернет-магазин и на порталы побольше.

Формат блога очень популярен. Кроме того, если вы научитесь создавать с нуля блог, без проблем можно расширить свои умения и на интернет-магазин и на порталы побольше.

Наши рамки Мы используем PHP, MySQL и не используем фреймворки. Веб-сервер у вас уже настроен.

Создание блога - нетривиальная задача (если, конечно, не рассматривать готовые платформы типа LiveJournal или Blogger). Вариантов её реализации - тысячи и нам необходимо определить рамки задачи:

  1. Мы используем PHP . Есть много других языков и платформ для бекенда, использование любого из них – дело вкуса. Мы будем говорить о чистом PHP и о паттернах программирования. Будем считать, что базовые знания по PHP у вас есть.
  2. Мы используем MySQL . В качестве БД можно использовать и другие СУБД, но мы будем использовать MySQL как самую популярную. В будущем можно будет подключить Memcached.
  3. Мы не используем готовые CMS . Поскольку наша цель - подтянуть PHP и изучить архитектуру блога, мы не будем использовать готовые CMS, ведь в большинстве случаев разработка блога на CMS - это всё-таки вёрстка и настройка блога в административной панели.
  4. Мы не используем фреймворки . Фреймворки – это хорошо, классно и правильно, но, опять же, цель нашего урока – глубже изучить PHP, а фреймворки дают некоторый уровень абстракции и отдаляют нас от тех поучительных граблей и тумаков.
  5. Будем считать, что веб-сервер у вас уже настроен .

С рамками определились, продолжаем.

Что нужно знать для того, чтобы создать блог на PHP с нуля?


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

  1. PHP - будет использоваться в качестве языка бекенда.
  2. MySQL - будем использовать в качестве хранилища.
  3. HTML + CSS - базовые знания.
  4. JavaScript - необязательно, но желательно.

Желательно также уметь хорошо и красиво верстать, ну и чувство вкуса тоже не помешает.

Что мы ожидаем от блога? Что в блоге должно быть?


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

Как видите, ничего сложного.

Что такое осень блог? Блог (да и вообще любой сайт) можно представить в виде страниц, функциональных блоков на этих страницах.

Эти все страницы должны взаимодействовать. Различные модули:

  1. Последние комментарии
  2. Модуль поиска
  3. Модуль входа на сайт
  4. Модули меню
  5. Рекомендуем почитать
  6. Вставка произвольного HTML блока (виджет группы в соц. сети и т.д.)

Каким блог должен быть структурно?

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

Роутер, система взаимодействия. Примеры.

Паттерны программирования. MVC и Singleton

Когда-то давно программистов было мало и каждый программист по куче раз наступал на грабли, изобретал свои велосипеды и писал свои костыли. Потом, когда программистов стало много и они устали изобретать велосипеды, какие-то программисты поняли что часто код структурно можно объединить в группы, такие себе «шаблончики проектирования». Такие вот структурные шаблоны и называются паттерны программирования . В сегодняшней статье мы рассмотрим паттерны MVC, и Singleton.

Паттерн Singleton

Singleton – это.

Паттерн MVC


MVC - это аббревиатура Model-View-Controller. Каждый компонент (визуально - блок) на сайте мы представляем в следующем виде.

При этом М одель определяет работу с данными.

Часто можно комбинировать различные модели и view. Например:

  • Боковые блоки (разные модели, один view);
  • Блог и список материалов (Одна модель, разные View).

Почему MVC? Расширяемость, гибкость, .

Приметы использования.

Структура

Получение данных выносим в ещё один абстрактный слой – библиотеки. Это бывает полезно когда у нас есть админка. Тогда нам не приходится по нескольку раз заниматься выборками из базы, кешированием и прочими вещами в каждой модели.

  • Libraries - папка с библиотеками;
  • Components - папка с компонентами;
  • Templates - папка с шаблонами.

Итог

Домашнее задание:

  • Разобраться в паттернах программирования MVC и Singleton.
  • Попробовать рассмотреть структуру работы популярных CMS.
  • Попробовать сделать набросок своей CMS (скачать набросок CMS от сайт).

На следующем занятии мы изучим:

  1. Отладка и логирование в CMS.
  2. Язык SQL. Работа с MySQL.
  3. Написание Singleton класса для MySQL и выполнение простых запросов.

Ну, и напоследок, краткое оглавление уроков:

  • Урок 1. Вступительный.
  • Урок 3. Фабрика, кеширование.
  • Сессии. Вход и регистрация.
  • Поиск.

Поздравляю всех, кто осилил такой большой урок. До встречи!

Загрузка...
Top