#15011From:Mithgol the Webmaster
To:Oleg Redut
Date:14-11-2017 01:00:22
Subj:Смыслы файлов
Так было 14:13 23 Oct 17 написано от Oleg Redut к Roman Danilov:

OR> И всё замусорено скрытыми каталогами и всякими
OR> .gitignore .travis.yml CHANGELOG.md composer.json LICENSE
OR> phpunit.xml.dist
OR> README.md

Думаю, что это не мусор: каждый из этих файлов реально полезен.

Файл .gitignore избавляет Git-хранилище (и, в частности, GitHub) от хранения файлов, которые автор считает *реальным* мусором (например, отладочные выводы какие-нибудь, или кэши, или ещё в этом же роде что-нибудь). В этом файле мусор перечисляется поимённо (или не вполне поимённо, а через звёздочку на месте переменной части имени).

Файл .travis.yml хранит те настройки, с которыми на сервере https://travis-ci.org/ автозапускается тестирование кода пакета. Они содержат, по меньшей мере, указание тестируемого языка (PHP) ── ещё там возможна донастройка параметров вызова используемого средства отладки (PHPUnit), но только если автор пакета не был доволен теми настройками, с какими Travis CI сам по умолчанию запускает PHPUnit (эти настройки для удобства по адресу *****://******.*****-ci.com/user/languages/php/#Default-Build-Script перечислены).

Файл CHANGELOG.md хранит список изменений кода пакета от версии к версии. Это одно из тех мест, в которые надо в первую очередь заглядывать при переходе на новую версию пакета, особенно если до перехода заглянуть не удалось, а после перехода что-нибудь оказалось неожиданным или ведёт себя не так, как прежде.

Файл composer.json содержит, по-видимому, настройки для правильной работы Composer.

Файл LICENSE необходим открытому коду для того, чтобы вполне явствовало, под какой лицензией он открыт: иногда открытость открытости рознь.

Файл README.md содержит описание пакета.

Файл phpunit.xml.dist, как это на странице *****://******.*****/manual/current/en/organizing-tests.html сказано в последнем разделе, используется для хранения настроек PHPUnit (средство PHPUnit используется для тестирования PHP-кода).


Фидонет будет великим и гипертекстовым! [Ru.Mozilla] ****://******.*****/
Mithgol the Webmaster. [Братство Нод] [Team А я меняю subj]

... Q: Why did the Cyclops stop teaching? A: He only had one pupil.
--- Нет таких игр. ****://******.*****/comics/20081210
* Origin: Пусть прежних жизней прах и тлен сгорает, как ацетилен! (2:50/88)
SEEN-BY: 50/88 5020/830 1042 6090/1
PATH: 50/88 5020/830 1042 6090/1
#15012From:Anton Poletayev
To:Mithgol the Webmaster
Date:16-11-2017 13:39:29
Subj:Смыслы файлов
Hi, Mithgol!

Вторник 14 Hоября 2017 01:00, ты писал(а) Oleg Redut, в сообщении по ссылке area://ru.php?msgid=2:50/88+5a0a1639:

MW> Файл composer.json содержит, по-видимому, настройки для правильной
MW> работы Composer.

Уточнение:
composer.json - список зависимостей пакетов и их версий, здесь вы определяете, пакеты каких версий вы допускаете к использованию.
composer.lock - список конкретных версий, которые были установлены и под которые велось тестирование. Это позволяет быть уверенным, что каждый, кто работает над вашим проектом будет иметь абсолютно одинаковые версии пакетов.

Пример:
Если у вас в composer.json указана версия пакета 1.*, вы выполняете composer update и получаете пакет версии 1.2, затем коммитите изменения.
Через некоторое время, вы или коллега устанавливаете проект в другом месте, используя composer install и получаете пакет именно версии 1.2, как это сохранено в composer.lock
Если же вы выполните composer update, то получите пакет 1.3, для которого тестирование не проводилось.

При этом, так как рамки версий заданы в composer.json, то, выполняя composer update, вы не получите версию 2.0, даже если она на этот момент уже вышла.

---
* Origin: RooDZ!Soft Labs. (2:5015/61)
SEEN-BY: 5015/46 61 5020/1042 6090/1
PATH: 5015/61 46 5020/1042 6090/1
#15013From:Anton Poletayev
To:All
Date:23-11-2017 22:25:18
Subj:PHP Internals
Hi, All!

[RFC] Allow a trailing comma in function calls
*****://******.*****.net/rfc/trailing-comma-function-calls
Предложение принято, а значит в ветке 7.3 станет возможным использование запятой после последнего аргумента функции:

var_dump(
$foo,
$bar,
$buz,
);

[RFC] Flexible Heredoc and Nowdoc Syntaxes
*****://******.*****.net/rfc/flexible_heredoc_nowdoc_syntaxes
Предложение по улучшению многострочных текстовых блоков также принято.
Станут доступны поддержка отступов и отмена необходимости
перевода строки после закрывающего маркера:

<?php
$values = [<<<EOT
a
b
c
EOT, 'd e f'];

Источник:
*****://******.*****/company/zfort/blog/342742/

---
* Origin: RooDZ!Soft Labs. (2:5015/61)
SEEN-BY: 5015/46 61 5020/1042 6090/1
PATH: 5015/61 46 5020/1042 6090/1
#15014From:Oleg Redut
To:Anton Poletayev
Date:24-11-2017 06:34:04
Subj:PHP Internals
Доброе (current) время суток, Anton!

AP> Предложение принято, а значит в ветке 7.3 станет возможным
AP> использование запятой после последнего аргумента функции:

AP> var_dump(
AP> $foo,
AP> $bar,
AP> $buz,
AP> );

Уже видел такой код. Не понял смысла. На всякий случай у себя убрал лишнюю запятую. :)

Что я могу еще сказать?..
Oleg

... AKA oleg(&)redut.info AKA ICQ 28852595
--- GoldED+/W32-MSVC 1.1.5-b20161221 (пока работает)
* Origin: --- ...И все на наш редут... --- (2:5000/111)
SEEN-BY: 5000/111 5020/1042 6090/1
PATH: 5000/111 5020/1042 6090/1
#15015From:Anton Poletayev
To:Oleg Redut
Date:24-11-2017 06:34:02
Subj:PHP Internals
Hi, Oleg!

Пятница 24 Hоября 2017 06:34, ты писал(а) мне, в сообщении по ссылке area://ru.php?msgid=2:5000/111+5a175af2:

AP>> var_dump(
AP>> $foo,
AP>> $bar,
AP>> $buz,
AP>> );

OR> Уже видел такой код. Hе понял смысла. Hа всякий случай у себя убрал
OR> лишнюю запятую. :)

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

Hапример:
function hasMission(string ...$missions): bool
{
foreach($missions as $mission)
return (некоторая проверка);
}

Соответственно, их можно будет вызывать
hasMission(
'customer',
'contractor',
);

Можно будет легко добавлять/удалять элементы, не заморачиваясь с отслеживанием финальной запятой,
точно так же, как сейчас с массивами:
hasMission([
'customer',
'contractor',
]);

Это удобно, как в ручном режиме, так и для написания скаффолдеров (генераторов кода).


---
* Origin: RooDZ!Soft Labs. (2:5015/61)
SEEN-BY: 5015/46 61 5020/1042 6090/1
PATH: 5015/61 46 5020/1042 6090/1
#15016From:Anton Poletayev
To:All
Date:07-02-2018 21:57:25
Subj:Вышел Laravel framework 5.6
Hi, All!

Официально вышел Laravel 5.6
https://laravel-news.com/laravel-5-6

Основные улучшения
- Logging Improvements
- Single Server Task Scheduling
- Dynamic Rate Limiting
- Broadcast Channel Classes
- API Controller Generation
- Eloquent Date Casting
- Blade Component Aliases
- Argon2 Password Hashing
- UUID Methods
- Collision
- Bootstrap 4

Что нового:
*****://******.*****/docs/5.6/releases#laravel-5.6

Руководство по обновлению:
*****://******.*****/docs/5.6/upgrade

Changelog:
*****://******.*****/laravel/framework/blob/5.6/CHANGELOG-5.6.md


---
* Origin: RooDZ!Soft Labs. (2:5015/61)
SEEN-BY: 5015/46 61 5020/1042 6090/1
PATH: 5015/61 46 5020/1042 6090/1
#15017From:Oleg Redut
To:All
Date:02-04-2018 12:43:27
Subj:Rules
Пpавила эхо-конфеpенции RU.PHP
18.01.2017

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

Тематика эхо-конфеpенции RU.PHP
===============================

Эта конференция посвящена обсуждению вопросов, связаных с
написанием программ на языке PHP и работой с базами данных SQL. Hе
исключается также обсуждение технических вопросов связанных с
различными сетевыми протоколами и стандартами.

В остальном эхоконференция RU.PHP соответствует общим правилам
конференций FidoNet и это значит, что их нужно соблюдать.

Разрешается гейтование эхоконференции в Интернет.

Hарушения и наказания
=====================

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

К вышеуказанному относиться и пpименение нецензypных выpажений,
даже забитых чем-либо #$%@.

- Разговоpы на темы, не являющиеся темой конфеpенции, либо объявленные
модеpатоpом оффтопиком.
- Размещение uuencode без разрешения модератора.
- Пеpеписка с модеpатоpом в эхе, либо самовольное модеpиpование в эхе.
- Личная пеpеписка в эхоконфеpенции.

Модеpатоp имеет пpаво yжесточить или смягчить наказание по своемy
yсмотpению в зависимости от гpyбости наpyшения в любом диапазоне
[*/+/!]

Hаказания высылаются yзлy-наpyшителю нетмейлом с дyблиpованием в
эхе. За своего поинта или юзера отвечает его босс. Не подставляйте его.

Модеpатоp является yчастником эхоконфеpенции, в связи с этим
письма, где в поле %FROM стоит его имя, служебными не являются.

Изменения в пpавилах встyпают в действие чеpез двое суток после
их опyбликования. Глобальные изменения - через неделю.

В конференции возможна смена модератора согласно прилагаемому
"Положению о выборах модератора".

Модеpатоpом конференции RU.PHP является
Oleg Redut (2:5000/111)

Комодератор назначается и отменяется Модератором, в данный момент
никто на должность КоМодератора не назначен.


Что я могу еще сказать?..
Oleg

... AKA oleg(&)redut.info AKA ICQ 28852595
--- GoldED+/W32-MSVC 1.1.5-b20161221 (пока работает)
* Origin: --- ...И все на наш редут... --- (2:5000/111)
SEEN-BY: 5000/111 5020/1042 6090/1
PATH: 5000/111 5020/1042 6090/1
#15018From:Oleg Redut
To:All
Date:02-04-2018 12:44:00
Subj:Положение
Положение о выборах модератора
от 11.01.2011

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

2. В конференции возможна смена модератора в нижеперечисленных случаях.

2.1. В случае невозможности выполнять свои обязанности, модератор может:
а) передать свои полномочия другому лицу, с официальным уведомлением в
эхоконференции и подтверждением смены строки в списке эхоконфеpенций,
пpинятых на бекбон;
б) организовать выборы нового модератора.

2.2. В случае отсутствия* модератора в конференции более трех месяцев:
а) полномочия переходят к очередному комодератору (согласно списка, при
наличии нескольких в Правилах конференции);
б) в случае отсутствия комодератора, либо отказа последнего из них
принять полномочия модератора, организуются выборы.

2.3. В случае дестабилизирующих действий со стороны модератора:
а) получившего полномочия не выборным путем (п.2.1а и п.2.2а), но не
ранее трех месяцев с момента принятия полномочий;
б) получившего полномочия выборным путем, но не ранее шести месяцев с
момента принятия полномочий;
организуются выборы.

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

4. Выборы проводятся в сроки и по правилам предложенным REC, либо
назначенным им RO.
4.1. На период до окончания выборов модератора, REC может временно
принять на себя обязанности модератора конференции, либо назначить
временного модератора.
4.2. Выборы проводятся с учетом голосов всех активных (пишущих)
участников конференции. Такие определяются на протяжение от 3-х до 6-ти
месяцев, до момента опубликования извещения о планирующихся выборах. Отбор
проводиться из имеющихся баз двумя-тремя участниками конференции по просьбе
EC и по его выбору. Список должен быть опубликован в конференции до начала
выборов и может быть дополнен или изменен REC согласно поступивших поправок.
4.3. Выборы прерываются, если до окончания выборов появится сообщение
от модератора о возобновлении им своих полномочий, либо о согласии
комодератора о принятии им полномочий модератора.
4.4. Выборы проводятся в один или два тура и считаются завершенными
при подаче не менее 50% голосов за одного из кандидатов от общего числа
проголосовавших.
4.5. Претендент, занявший второе место, может быть назначен
комодератором. Это назначение уже делается избранным модератором.
4.6 В Правила конференции вносится данные нового модератора и, при
необходимости, изменяется список комодераторов.

5. В остальных случаях участники конференции, для выборов или смены
модератора, должны руководствоваться здравым смыслом и документом FidoNet
EchoPolicy.

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

* Отсутствие модератора определяется по совокупности причин:
а) отсутствие постинга в эху правил конференции;
б) отсутствие модераториалов от модератора в шапке,
либо писем от него без шапки;
в) невозможности связаться с модератором любым способом, для выяснения
причин отсутствия.

Что я могу еще сказать?..
Oleg

... AKA oleg(&)redut.info AKA ICQ 28852595
--- GoldED+/W32-MSVC 1.1.5-b20161221 (пока работает)
* Origin: --- ...И все на наш редут... --- (2:5000/111)
SEEN-BY: 5000/111 5020/1042 6090/1
PATH: 5000/111 5020/1042 6090/1
#15019From:Anton Poletayev
To:All
Date:07-12-2018 16:04:01
Subj:Вышел PHP 7.3
Hello, All!

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

Ключевые улучшения в PHP 7.3:

- Реализован гибкий синтаксис многострочной
вставки (строки heredoc и nowdoc), не требующий
обязательного перевода строк после маркера
окончания блока и допускающий выравнивание отступами;

- Добавлена поддержка назначения ссылок в list():
теперь поддерживается синтаксис "list($a, &$b) = $array;",
эквивалентный присвоению "$a = $array[0]; $b =& $array[1];".
Предложен также упрощённый синтаксис присвоения,
позволяющий указывать вместо "list()" квадратные скобки,
например "[$a, &$b] = $array;"

- При вызове функций и методов теперь допускается
оставление запятых в конце списка аргументов,
например, "unset($foo, $bar, $baz,)";

- Расширение PCRE переведено на ветку PCRE2;
Выражение "instanceof" теперь допускает указание
литералов в качестве первого операнда
(в такой ситуации результат всегда будет FALSE);

- Добавлено новое исключение CompileError,
наследуемое от ParseError и генерирующее
для некоторых типов ошибок перехватываемое
событие CompileError вместо фатальной ошибки;

- Значительно расширены возможности и увеличена
производительность дополнения MBString,
в том числе добавлены полноценные средства
для манипуляций с регистром символов
(MB_CASE_LOWER, MB_CASE_UPPER, MB_CASE_TITLE, MB_CASE_FOLD и т.п.),
до версии 11 обновлена поддержка спецификаций Unicode,
добавлена поддержка строк, размером больше 2 Гб,
в функциях mb_ereg_*() добавлена поддержка именованного
захвата элементов. Объявлены устаревшими вызовы mbereg_*(),
вместо которых следует использовать corresponding mb_ereg_*();

- В SAPI-модуль FPM добавлены новые глобальные опции log_limit и log_buffering
для ограничения размера выводимой в лог строки
и включения режима записи в лог без буферизации.
Также добавлена опция decorate_workers_output,
позволяющая отключить декорирование вывода
от рабочих процессов при активации режима catch_workers_output;

- В расширении LDAP в большинстве функций,
таких как ldap_add и ldap_read, появился параметр serverctrls
для отправки на сервер дополнительных сообщений
(LDAP Controls - механизм расширения операций LDAP
и передачи дополнительной информации вместе с запросом),
а в ldap_parse_result для получения клиентом
дополнительных сообщений от сервера.
Hалажена поддержка режимов LDAP_OPT_SERVER_CONTROLS
и LDAP_OPT_CLIENT_CONTROLS в функциях ldap_get_option и ldap_set_option;

- В заголовок страницы phpinfo(), добавлено отображение переменной PHP_VERSION;

- В расширение Date добавлен метод DateTime::createFromImmutable();

- В расширение GD в функции imagecreatefromstring()
появилась поддержка создания изображений в формате WebP;

- При сборке с опцией configure --with-password-argon2
в функциях password_hash(), password_verify(),
password_get_info() и password_needs_rehash()
обеспечена поддержка алгоритмов хэширования паролей Argon2i и Argon2id;

- Добавлена функция hrtime() для вывода значения времени
(число секунд и наносекунд) на основании показаний монотонного таймера,
отражающего неразрывно увеличивающееся время, прошедшее
с определённого момента в прошлом;

- Представлена новая функция net_get_interfaces()
для получения информации о доступных сетевых интерфейсах;

- Улучшена работа сборщика мусора;

- Переписана на PHP утилита ext_skel (генерирует шаблоны кода дополнений),
для запуска которой теперь не нужно дополнительных зависимостей
и её можно запускать в том числе в Windows ('php ext_skel.php');

- Объявлено устаревшим определение имён констант не чувствительных к регистру
(определялись при помощи указания в define специального флага).
Приведены к соответствию с поведением Unix операции
открытия файлов в Windows: файловые дескрипторы теперь
по умолчанию открываются в Windows в режиме, допускающем чтение,
запись и удаление (открытые файлы теперь можно удалить);

- Прекращена поддержка платформы BeOS.

---
* Origin: RooDZ!Soft Labs. (2:5015/61)
SEEN-BY: 5015/46 61 5020/1042 6090/1
PATH: 5015/61 46 5020/1042 6090/1
#15020From:Anton Poletayev
To:Oleg Redut
Date:07-12-2018 16:14:00
Subj:PHP Internals
Здpавствуй, Oleg!

Пятница 24 Hоября 2017 06:34, ты писал(а) мне, в сообщении по ссылке area://ru.php?msgid=2:5000/111+5a175af2:

AP>> Предложение принято, а значит в ветке 7.3 станет возможным
AP>> использование запятой после последнего аргумента функции:

AP>> var_dump(
AP>> $foo,
AP>> $bar,
AP>> $buz,
AP>> );

OR> Уже видел такой код. Hе понял смысла. Hа всякий случай у себя убрал
OR> лишнюю запятую. :)

А еще смысл в том, что при удалении 1 строчки, в git уезжает одна эта строчка, а не 2, включая соседнюю с удаленной запятой.


С уважением - Anton
--- -
* Origin: RooDZ!Soft Labs. (2:5015/61)
SEEN-BY: 5015/46 61 5020/1042 6090/1
PATH: 5015/61 46 5020/1042 6090/1
Выделенный сервер за 149 руб!