Ну как сам.. По обрывкам информации в интернете, методом тыка, проб и ошибок. Я вообще сеошник, и как-то захотелось внедрить такую штуковину на одном из подопечных сайтов, а платить мастерам дела за свой эксперимент жалко было. Пришлось самостоятельно разбираться :)
Так что на чистоту и правильность кода не претендую, но "это работает".
sqlite, конечно. приложение разрабатываю с целью ближе познакомиться с фреймворком.
Вы говорите о разработке авторизации, как в случае микроблога в туториале Майкла Хартла, если я не ошибаюсь.
Суть в том, чтобы немного усложнить мою http аутентификацию, чтобы данные для неё не хранить жёстко прописанными в коде, а, например, генерировать пароль каждый раз при входе, отправляя его на почту письмом, или же использовать api каких нибудь соц. сетей, но только не усложнять и нагромождать приложение дополнительными модулями, а просто скрыть данные от общего обозрения при наличии публичного репозитория.
Хотел спросить как Вы добавляете статьи на свой frey.su. Я его читаю и часто смотрю в его сторону. Но там же нашёл и нужный гитхаб, и Devise. Но не излишняя ли это роскошь, для одного только админа?
Devise требует базы данных, это не решение моей задачи - придётся создавать отдельную таблицу для юзеров, а это через чур для одного пользователя. Мне бы нечто, что сможет изменить мою http аутентификацию каким нибудь email == '********'на my-email@mail.net == google_auth.email
Вы знаете, надо проверить на каком нибудь большом проекте с помощью, например, этого сервиса: gtmetrix.com/.
Но если это работает в рельсах, то значит должно поддерживаться и браузерами.
Сам же я предпочитаю опускать вызов js файлов вниз html документа, а со стилями обхожусь только оптимизацией - боюсь что из-за async они могут подгрузится не в том порядке, в котором требуется)
Не уверен, что это относится к созданию темы.
Я имею в виду сделать следующее:
- в Вашем html файле добавьте вверху код:
<?
/*
Template Name: Лендинг
*/
?>
(Вместо "Лендинг" можно написать что угодно)
- скорипуйте этот html файл в папку с темой (wp-content/themes/НазваниеТемы/)
- в админке сайта нажмите "страницы -> добавить новую", и в этой "форме" создания страницы справа будет блок "Атрибуты страницы", в нём список "Шаблоны", выбираете из них шаблон с названием Лендинг, задайте странице название и сохраните.
Или ещё проще, вот только что попробовал, просто залил в папку с сайтом (там где папки wp-admin, wp-content, файл .htaccess и пр.) файл test.html, и он доступен по адресу site.ru/test.html.
Вот есть у Вас функция - Агент_Смит, а помните как в третьей части их стало много-много, т.е. в процедурном подходе - это много функций, с одинаковым содержимым, ну у кого-то там левое ухо больше правого, а у кого-то наоборот. В итоге куча функций, и все работают, пытаются побить мистера_Андерсотна. Это процедурный подход.
А если сделать Агент_Смит классом, то от него можно унаследоваться и не повторять множество строк, просто сказать, что Агент_Смит_Второй наследуется от Агента_Смита (копирует все его методы - приёмы кунг-фу), НО, вот у него левое ухо, в отличии от родителя, немного больше правого. А Агент_Смит_Третий, который наследуется опять же от Агента_Смита, вообще прихрамывает на правую ногу, а значит удар левой ногой у него не очень сильный.
Ведь в фильме их там было очень много, если бы их создали процедурно - то матрица не подлежала бы рефакторингу (по крайней мере это было бы сущим адом), что есть огромный минус в коммерческом использовании, да и вообще, не только в коммерческом.
Да, это отдельный язык, если возьмётесь изучать его, то тут полно вопросов-ответов с чего начать.
А рельсы (ruby on rails) - это фреймворк написанный на руби, очень широко используется в вебе.
По поводу того раздела об ООП, вот книга на русском: rutracker.org/forum/viewtopic.php?t=4212262
Конкретно - раздел 2: "Путешествие в объектвилль" (не знаю как в оригинале, но на русском название очень сказочное), там на примере решения одной задачи два программиста борятся за кресло (приз), при чём один из них приверженец ООП, а другой процедурного. Начиная с 58 и заканчивая 63 страницей описывается эта история, почитайте, это не отнимет много времени, но добавит новых знаний.
Руби более чем подходит для веба, а так как в языке всё - объект, то выбора, как такового, просто не остаётся.
В пхп не применяю, оставил попытки вместе с ожиданием ларавел 5-й версии и перешёл на руби (рельсы).
Получается я взял Ваш код из первого сообщения и обернул его (даже не я, а фреймворк) в
class ClassName {
function spam(eggs) {
...
}
function foo(bar) {
...
}
}
И обращаюсь к ним где нужно теперь так: ClassName.spam(eggs)
А дальше уже радости в виде наследования, инкапсуляции и полиморфизма.
ООП теперь кажется удобством, а не сложной научной фантастикой, хотя мне только начал открываться этот мир и тяжёлых приложения делать пока не плинирую. Но я по сфере занятости не программист, хоть и учился.. Так что тоже жду ответов на этот вопрос :)
Но книги, по которым делаешь первый блог/магазин, в которых конечно же применяется ООП - на мой взгляд, самое лучшее в преодолении первых "ступенек".
Тогда попробуйте так: export PATH="$PATH:/usr/local/bin/composer"
Т.е. Вам необходимо указать путь к папке с установленным composer'ом в системную переменную path (или HOME/COMPOSER_HOME), чтобы пользоваться им "глобально".
Так что на чистоту и правильность кода не претендую, но "это работает".