«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
utf-8 2018/11/29 21:18:42  №1303382 1
Ответы: >>1304938
Аноним 2018/11/29 21:49:11  №1303392 2
А кстати, знаете ли вы, что функции и классы в php не чувствительны к регистру символов, т.е. что их можно писать хоть маленькими буквами, хоть большими, хоть в перемешку и при этом они всё равно будут работать?
Я вот хоть и работаю с php лет 10, только сегодня узнал об этом.
Ответы: >>1303398
Аноним 2018/11/29 21:51:43  №1303398 3
>>1303392

В Линуксе имена файлов чувствительны и при использовании автозагрузки будет ошибка.
Ответы: >>1303408
Аноним 2018/11/29 22:12:41  №1303408 4
>>1303398
Да ты прав. Это вообще на мой взгляд очень плохо, что функции и классы не чувствительны к регистру символов и с этим у меня возникла проблема.

Я делал небольшой фреймворк для собственного использования в своих проектах и хотел частично повторить принцип руби на рельсах с вызовом контроллеров.
Т.е. сделать так, что бы при открытии ссылки
site.com/huita запускался котроллер HuitaController,
при запуске
site.com/labuda что бы запускался LabudaController,
и так далее. И в общем всё это отлично работает, но как оказалось, если написать
site.com/HUiTa, то контроллер HuitaController всё равно запускается, а это на мой взгляд совсем не правильно, так как я хочу, что бы каждая ссылка была строго чувствительной к регистру.


А насчет автозагрузки могу только сказать, что я её не использую. Вместо этого я написал небольшую функцию, которая рекурсивно сканирует необходимую папку и загружает все имеющиеся php файлы. Т.е. в результате файлы в этой папке можно перемещать и переименовывать как захочется, а так же при необходимости перемещать файлы во внутренние папки. Возможно это замедляет обработку запроса на считанные наносекунды, так как не всё содержимое этой папки может понадобится в данный конкретный момент, но зато это очень удобно.
Ответы: >>1303414 >>1303554 >>1304938
Аноним 2018/12/02 16:54:10  №1304938 5
>>1303408

Ты вообще-то можешь проверять регистр перед вызовом контроллера.

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

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

Есть PSR-4 и композер, не надо заниматься изобретением велосипеда с квадратными колесами.

>>1303382

> https://repl.it/repls/VivaciousFaithfulScandisk

Ошибка 404, код не открывается.
Ответы: >>1305031
Аноним 2018/12/02 19:14:04  №1305031 6
аноны, помогите пж с задачкой про исправление регистра текста и пробелами после знаков препинания
>разбиваем текст на массив предложений с помощью preg_split. Каждое предложение пропускаем через функцию, делающую первую букву заглавной.

После того как я разбил строку по предложениям, и каждое предложение лежит в массиве, как с помощью функции поменять регистр 1 буквы в каждом эл-е массива? Ещё я не совсем понимаю как обращаться к элементу массива в preg_split`e чтоб он принимал элемент как строку>>1304938

https://ideone.com/V6Rxdg
Ответы: >>1305101 >>1305361
Аноним 2018/12/02 21:01:43  №1305087 7
Про Laravel написано "Does NOT work on Shared hosting plans". Что это значит? Что ему нужно такого, что нет на простом хостинге?
Ответы: >>1305361
Аноним 2018/12/02 21:30:26  №1305101 8
Ответы: >>1305361
Аноним 2018/12/03 14:01:37  №1305361 9
>>1305101
>>1305031

> for($i=0;$i<count($dividedLine);$i++){
Используй foreach

> После того как я разбил строку по предложениям, и каждое предложение лежит в массиве, как с помощью функции поменять регистр 1 буквы в каждом эл-е массива?

$result = [];
foreach ($sentences as $sentence) {
$result[] = fn($sentence);
}

Примерно как у тебя и сделано.

Есть еще array_map(), смотри мануал, он позволяет обойтись без цикла в 1 строчку.

ucfirst не работает, смотри урок: https://github.com/codedokode/pasta/blob/master/php/strings-utf8.md

> Ещё я не совсем понимаю как обращаться к элементу массива в preg_split`e чтоб он принимал элемент как строку

Как взять элемент из массива? $array[0] например.

>>1305087

Не знаю. Установка какой-нибудь Node.JS может быть? Надо смотреть док-ю.