Создание собственного фреймворка. Мультиязычность. Часть 1. Урок 26

preview_player
Показать описание
Посмотрите уроки по разработке веб-приложения на PHP:

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

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

Для реализации последней задачи мы немного расширим паттерн MVC (модель – вид – контроллер) до паттерна MVCL (модель – вид – контроллер – язык).
Рекомендации по теме
Комментарии
Автор

Андрей, вы не представляете какой вклад вы делаете своими уроками, словами не передать!!!! Но, пройдет время и очень многие, я уверен, смогут подняться на определенный уровень, благодаря ВАМ!!!! Как всегда лайк и низкий поклон за ваш труд и ваши знания.

pbuldvs
Автор

Супер! Большое спасибо! Очень полезная серия уроков на данную тему:)
Андрей, Вы лучший! Всем новичкам советую только Вас:)

drvpveo
Автор

спасибо огромное всегда за такие супер уроки!

yaokouassi
Автор

самый простой способ локалки без дб можно сделать через server вытянуть язык и для удобства обрезать оставить типа Ru-ru En-en либо брать 2 символа типа ru en. Сделать массив какие языки имеются {ru, en}, если у пользователя другой язык какого нет в массиве назначить ему дефолтный язык типа ru. (скажем у пользователя украинский то по дефолту локалка будет русская) Кинуть в сессию ключ. дальше просто цеплять файл lang/ru.php там константы записывать.
Для постов и подобного можно легко назначить локалку по типу $post->title. $_session[lang] должно выводить $post->titleru / $post->titleen
Для пользователей можно локалку можно изменять сделать форму селект с выбором языка а в экшене просто проверить массив наших языков и кинуть в сессию новый язык и получится автоматически подцепится нужный языковый файл. Всего должно получиться
1. в run на автозагрузке -> CurrentLang() должен получить текущей язык -> setLang() закинуть в сессию.
2. назначение нового языка -> setLang() новый язык

gamingplay
Автор

Французский )) Français ) на данном уроке не важно как пишется, просто мне стал интересно по сколько я франко говорящий ) важно то что вы донесли до нас и спасибо вам огромное за ваш труд!

yaokouassi
Автор

Спасибо большое за объясняшку. Все очень доходчиво и интересно!

xcxpxfh
Автор

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

ivantarabukin
Автор

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

vhdbjej
Автор

Спасибо огромное ... Классный урок.. Но для сео нужно добавлять в урл язык если меняешь .. То есть если русский по дефолту то не выводишь а если меняешь на анг то код в урле должен быть.. Говорю из опыта на опен карте .. Пришлось доделывать данный функционал

vcjyutd
Автор

Как вариант можно брать из .ini файлов значение, я делал подобным образом мультиязычность)) не знаю как на сео влияет, но работало не плохо

middle
Автор

Добрый день Андрей! В одном из уроков Вы говорите, что защищаемся от инъекций и создаете такое свойство с параметрами:
public function findBySql($sql, $params = []){
return $this->pdo->query($sql, $params);
}
Где sql запрос. Его, что достаточно почти для любого запроса? После этого уже не надо post обрабатывать в обработчике так или как-то еще? Или может сейчас уже существуют другие способы защиты от инъекций?
И в этом же уроке вы говорили обработчик форм будет на тех же страницах где и формы. А нельзя ли обработчики поместить в моделях страниц?
Может Вы уточняли эти вопросы в других видео? Я дошел только до 10го урока

ivantarabukin
Автор

А как быть, если сайт без смs, он одностраничный и бд нет(?

xffzckr