Skip to content

Instantly share code, notes, and snippets.

@codedokode
codedokode / Паттерны работы с базой данных.md
Last active November 21, 2022 06:58
Паттерны работы с базой данных

Это старая версия урока, которая больше не обновляется. Новая версия расположения тут: https://github.com/codedokode/pasta/blob/master/db/patterns-oop.md


Паттерны работы с базой данных

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

@codedokode
codedokode / Функции работы со строками в PHP и utf-8.md
Last active March 25, 2019 01:18
Функции работы со строками в PHP и utf-8

Статья переехала в мой гитхаб: https://github.com/codedokode/pasta/blob/master/php/strings-utf8.md . Ниже идет устаревшая и неточная версия.


Некоторые функции PHP (strlen, substr, а также обращение к строке как к массиву: $str[0]) не работают с многобайтовыми кодировками (вроде utf-8). В utf-8 1 символ закодирован с помощью от 1 до 6 байтов, а эти функции думают, что 1 буква всегда кодируется одним байтом. По этой причине они ломают символы, в результате получаются битые символы и ничего не работает. Потому вместо них надо использовать mb_ функции например mb_strlen, mb_substr. Вместо доступа к строке как к массиву надо использовать mb_substr.

Если тебе интересно, почему эти функции поддерживают только однобайтные кодировки, а не многобайтные, то причина в том, что они очень старые и написаны в то время (лет 40 назад) когда utf-8 и многобайтных кодировок еще не было.

Давай разберем пример. Допустим, у нас есть строка из русской буквы «щ» в кодирове utf-8. Попытаемся взять первую букву с п

@codedokode
codedokode / DI, IoC.md
Last active December 27, 2021 16:38
DI, IoC, ServiceLocator, Registry

Этот урок переехал в мой гитхаб по адресу: https://github.com/codedokode/pasta/blob/master/arch/di.md

Ниже устаревшая версия урока.


Зачем нужны Depencdency Injection, IoC, ServiceLocator, Registry (и что это?)

Проблема, которую мы решаем — связность классов. Если в классе A написано

@codedokode
codedokode / Как установить PHP.md
Last active May 16, 2023 19:53
Как установить PHP (в картинках)

Этот урок переехал в репозиторий с черновиками: https://github.com/codedokode/pasta/blob/master/soft/php-install.md

Ниже - старая, неподдерживаемая версия.


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

В инструкции упоминается командная строка. Если ты с ней не работал, можешь почитать мой краткий курс молодого бойца на эту тему: https://gist.github.com/codedokode/10539568

@codedokode
codedokode / Флоаты и маргины.md
Last active June 22, 2018 19:14
Флоаты и маргины на них (в том числе отрицательные)

Эта статья перенесена по адресу https://github.com/codedokode/pasta/blob/master/html/float-margins.md Ниже старая, не обновляемая версия статьи.


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

Для float left: левый маргин влияет на флоат, правый — на окружающие элементы

Для float right: левый маргин влияет на окружающие элементы, правый — на сам флоат

@codedokode
codedokode / Простая задача на сайт на PHP.md
Last active August 29, 2015 14:06
Простая задача на сайт на PHP

Это устаревшая версия документа.

Новая версия задачи (с подробными комментариями, пояснениями и советами) выложена по адресу https://github.com/codedokode/pasta/blob/master/student-list.md. Поверь, с новой версией решить задачу гораздо проще, там все подробно расписано, так что переходи и читай.


  • Требуется знать: PHP, основы ООП, основы баз данных, основы HTML/CSS, формы, таблицы, как работает веб-страница.
  • Уровень: начинающий
  • Время: 3-10 дней
@codedokode
codedokode / Полезные ссылки.md
Last active November 26, 2022 07:30
Полезные ссылки

PHP

Что не нужно кодить самостоятельно - полезная статья, рассказывает о тех случаях, когда однозначно стоит использовать готовое решение, а не писать свой велосипед. Хочешь написать свой шаблонизатор или парсить HTML регулярками? Стой, прочти статью сначала.

Для тех, кому интересно — HTML нужно парсить XML/HTML-парсером, например встроенной в PHP библиотекой PHP DOM, искать нужные элементы в дереве удобно с помощью мини-языка запросов XPath

https://github.com/ziadoz/awesome-php - список библиотек и фреймворков на PHP на все случаи жизни. Нужен HTTP-клиент или валидатор JSON? Найдется.

http://phptrends.com/ — поиск по библиотекам и фреймворкам с учетом поулярности.

@codedokode
codedokode / js-task-1.md
Last active March 4, 2024 12:35
Задания на яваскрипт (простые)
@codedokode
codedokode / Как установить Апач.md
Last active January 29, 2021 09:17
Как установить Апач

Этот урок переехал: https://github.com/codedokode/pasta/blob/master/soft/apache-install.md

Ниже - старая, не поддерживаемая версия.


Итак, я решил установить Apache и PHP. Что дальше?

Молодец. Устанавливать Apache, PHP, MySQL лучше всего самому, так как при этом ты получишь ценные знания, а сборки лучше не использовать.