The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Началось альфа-тестирование PHP 8.3

09.06.2023 12:34

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

  • Во время клонирования классов предоставлена возможность повторной инициализации свойств с атрибутом "readonly". Переопределение readonly-свойств допускается только внутри функции "__clone":
    
       readonly class Post
       {
           public function __construct(
               public DateTime $createdAt,
           ) {}
           public function __clone()
           {
               $this->createdAt = new DateTime(); // разрешено, несмотря на то, что свойство "createdAt" доступно в режиме только для чтения.
           }
       }
    
  • Добавлена возможность создания анонимных классов в режиме только для чтения:
    
       $class = new readonly class {
           public function __construct(
               public string $foo = 'bar',
           ) {}
       };
    
  • Добавлена функция json_validate() для быстрой проверки соответствия строки формату JSON без выполнения операций декодирования.
     
       json_validate(string $json, int $depth = 512, int $flags = 0): bool
    
  • В класс Randomizer, предоставляющий высокоуровневый API для генерации псеводослучайных чисел и последовательностей, добавлены новые методы: getBytesFromString для формирования строки заданного размера, использующей в случайном порядке символы, присутствующие в другой строке; getFloat и nextFloat для генерации случайного числа с плавающей запятой, укладывающегося в указанный диапазон.
  • Добавлена возможность извлечения констант, используя синтаксис динамических классов:
    
       class Foo  
       {
           const BAR = 'bar';
       }
    
       $name = 'BAR';
     
       // Ранее для извлечения константы BAR нужно было вызывать
       constant(Foo::class . '::' . $name);
    
       // А теперь достаточно указать
       Foo::{$name};
    
    
  • Добавлена генерация отдельных исключений (DateMalformedIntervalStringException, DateInvalidOperationException, DateRangeError) в случае проблем, возникающих в операциях работы с датами и временем.
  • Улучшена обработка ошибок, возникающих в процессе разбора сериализированных данных в функции unserialize(). В случае проблем unserialize() теперь выдаёт код E_WARNING вместо E_NOTICE.
  • Добавлены настройки для защиты от переполнения стека. В ini-файл добавлены директивы zend.max_allowed_stack_size и zend.reserved_stack_size, определяющие максимально разрешённый и зарезервированный размер стека. Программа будет завершаться ошибкой при приближении к исчерпанию стека, когда стек заполнен больше, чем на разницу между значениями zend.max_allowed_stack_size и zend.reserved_stack_size (выполнение будет остановлено не доводя ситуацию до возникновения segmentation fault). По умолчанию значение zend.max_allowed_stack_size выставлено в 0 (0 - размер определяется автоматически, для отключения ограничения можно выставить -1).
  • Добавлены новые POSIX-функции posix_sysconf(), posix_pathconf(), posix_fpathconf() и posix_eaccess().


  1. Главная ссылка к новости (https://www.php.net/archive/20...)
  2. OpenNews: Предварительный выпуск проекта PXP, развивающего расширенный диалект языка PHP
  3. OpenNews: Перехвачен контроль над 14 PHP-библиотеками в репозитории Packagist
  4. OpenNews: Релиз языка программирования PHP 8.2
  5. OpenNews: Объявлено о создании организации PHP Foundation
  6. OpenNews: Уязвимость в PHP, позволяющая обойти ограничения, заданные в php.ini
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/59270-php
Ключевые слова: php
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (87) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Gemorroj (ok), 14:14, 09/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +19 +/
    долгих лет жизни лучшему языку программировния
     
     
  • 2.3, Аноним (3), 14:25, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • –4 +/
    т.е. php4
     
     
  • 3.5, Аноним (5), 14:34, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • +10 +/
    php4 это худший язык программирования, хотя даже языком полноценным это трудно назвать, так hypertext preprocessor, не более
     
     
  • 4.6, Кровосток (ok), 14:43, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Слушай, ну в то время когда был php4 - он был вполне себе даже адекватный для уровня его использования.
     
  • 4.17, Аноним (17), 16:15, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    если программа начинается с метки <?, то это не язык программирования, а препроцессор. В языках программирования компилятор/интерпретатор еще до чтения первого байта находится в состоянии "читаем стейтменты на ЯП". А в препроцессорах наоборот: интерпретатор по умолчанию находится в режиме "выводим исходники как есть", и длится это до тех пор, пока ему явно не скажут, что "всё, начались стейтменты на ЯП".
     
     
  • 5.20, Anton (??), 16:33, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Ну так себе аргумент. Так можно договориться, что com-файл сразу выполняется, а exe-файл начинается с MZ.
     
     
  • 6.22, Аноним (22), 16:53, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А большинство скриптов начинаются с #!, и что?
    Метку формата и внутренняя разметка файла - это разные вещи.
     
  • 5.39, Ононимъ (?), 02:34, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А если с метки <script> ?
     
     
  • 6.54, Аноним (22), 12:43, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Это гораздо, ГОРАЗДО хуже, чем PHP.
    Это, [censored], JS.
     
     
  • 7.67, Аноним (17), 19:56, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У JavaScript отлично спроектированный апи, в отличие от пыха, который является франкенштейном из перла, явы и... си. А <script> вставляешь только в HTML, и то только потому, что он в вебе является entry point-ом. В самом js-файле он не нужен, включая браузеры, Node.JS, JScript (Windows 95), DAZ Script, Qt Script, скрипты GNOME, правила polkit... (Любопытно, что JS нашел свое применение далеко за пределами веба и браузера, а пых так и остался "персонал-хоум-пейджем")
     
     
  • 8.86, swarus (?), 02:10, 12/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    сразу видно что костыльный JavaScript глубоко знаешь вот скажи что означает th... большой текст свёрнут, показать
     
     
  • 9.87, Аноним (17), 02:39, 12/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    this 8212 неявный аргумент наряду с arguments Если ты про потерю this , то ... большой текст свёрнут, показать
     
     
  • 10.89, swarus (?), 05:41, 12/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Бесит не бесит, но отлично спроектированным js не назавешь Отлично спроектирова... большой текст свёрнут, показать
     
     
  • 11.97, b00by (?), 20:19, 13/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ахах, будто существуют отлично спроектированные языки, к которым ни одна пaдла... текст свёрнут, показать
     
  • 9.96, b00by (?), 20:16, 13/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    1 у меня за 8 лет опыта в повседневной работе с JS никаких проблем c этим злосч... текст свёрнут, показать
     
     
  • 10.103, swarus (?), 00:43, 16/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    я не на js завёлся, а на ... текст свёрнут, показать
     
  • 5.74, Аноним (74), 03:03, 11/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Он таким был когда-то.
    В современном PHP есть оператор ?>, означающий "print до <?". При этом каждый файл как бы неявно начинается с ?> - такой вот костыль для обратной совместимости.
     
  • 2.7, Иваня (?), 14:53, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • –10 +/
    Golang лучший, а это уже устарело. Писал на php ещё школьником, а теперь у меня уже сыну 7 лет.
     
     
  • 3.8, Аноним (8), 15:05, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • +7 +/
    >>> а это уже устарело. <<<

    Да, да! так же как и С/C++/Java, - нет серьезно, вам самим эту шарманку не надоело крутить? Идите лучше хлебните чашечку смузи и расслабтесь.

     
     
  • 4.11, Аноним (11), 15:18, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Человек для себя принял мысль, что он эволюционировал замнив одно дерьмо другим дерьмом.
    Отстань от него ... пусть почешет свое самолюбие об OpenNET.
     
  • 3.10, Аноним (10), 15:17, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ещё скажи С, С с плюсами устарели. Помню как почти 20 лет назад читал, что это мертвые языки)))

    А PHP переживет тебя, меня и твои внуки его увидят в новых проектах.

     
     
  • 4.12, Аноним (12), 15:34, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Старый Си действительно устарел. Следует использовать редакцию 2011 года.
    Кроме того, само наличие типов нефиксированной длины не есть хорошо.
     
     
  • 5.65, Аноним (65), 19:45, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А невозможность использовать во всяких #include ссылки в виде URI - это хорошо или плохо? Что-то наподобие #include "https://github.com/foo/bar/file.h"
     
  • 4.28, Аноним (28), 19:52, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Если увижу си у внуков, то смирюсь что ничего лучшего не придумали.
    Если увижу у внуков php, то разочаруюсь в человечестве.
     
     
  • 5.55, Аноним (12), 13:04, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Паскаль лучше Си.
     
  • 5.98, Нюрасетка (?), 20:21, 13/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ничего не увидишь у внуков, я заберу у них работу
     
  • 3.14, simplefied (?), 15:39, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    У голанга проблем своих много, типа слабенькой системы packages, неочевидных штук типа сабслайсов указывающих на ту же память что и родительский слайс, тормозной интерфейс к сишным либам cgo, отсутствие деструкторов. В общем голанг уже устарел, сейчас все про раст говорят, там этих проблем нет:)
     
  • 2.30, Аноним (30), 19:56, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Оболваненный фанат оболваненного Ленина, пытающийся оболванивать анонимов. Фу таким быть!
     
  • 2.79, Аноним (79), 15:46, 11/06/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Лучшему ли?
    https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/
     
     
  • 3.99, Аноним (99), 20:22, 13/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Назови язык, который никто никогда не обсирал.
     

  • 1.15, Аноним (15), 15:55, 09/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    >DateMalformedIntervalStringException

    Ооо, ну теперь пхп похоже серьёзно решил джаву подсидеть

     
  • 1.18, Онуфрий (?), 16:22, 09/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Никак не могу перейти с процедурного стиля на ООП. Посоветуйте, что делать?..
     
     
  • 2.21, Аноним (21), 16:45, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Выучить Лисп.
     
     
  • 3.31, Аноним (-), 20:53, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Выучил Scheme, возненавидел ООП, присмотрелся к лисповому ООП и понял, что возненавидел мейнстримное ООП, как жить теперь?
     
     
  • 4.43, Аноним (21), 04:08, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Писать на Лиспе, а в свободное время заниматься хобби. Я вот люблю нехитрую мебель мастерить простым инструментом. Оно и для тела полезно, и продаётся неплохо.
     
     
  • 5.90, пох. (?), 08:14, 12/06/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Писать на Лиспе, а в свободное время заниматься хобби. Я вот люблю
    > нехитрую мебель мастерить простым инструментом. Оно и для тела полезно, и
    > продаётся неплохо.

    Да, гробы подорожали, говорят, процентов на 40.
    Есть где развернуться мастеру.
    И никакого тебе пехепе с объектами.

     
  • 4.101, Ананий (?), 16:54, 14/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    На луа с его метатаблицами
     
  • 2.23, Аноним (23), 17:25, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Когда вспомнишь про Дуньку Кулакову, также вспомни, что взаимодействуешь с объектом, а не субъектом.
     
     
  • 3.29, Аноним (29), 19:53, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И попробуй новую позу вместо стандартной процедуры.
     
     
  • 4.33, Аночик (?), 23:05, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Рука незнакомки?
     
     
  • 5.84, Tron is Whistling (?), 23:18, 11/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Слишком мало деталей.
    Незнакомка может и проктологом оказаться.
     
  • 2.24, Аноним (24), 17:40, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    если надо переходить, то не надо переходить
     
  • 2.25, Аноним (-), 18:16, 09/06/2023 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.34, YetAnotherOnanym (ok), 23:35, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Перечитать по три раза первую часть "Анти-Дюринга" и "Материализм и эмпириокритицизм", после чего, уединившись, медитировать над понятием "отражения".
    В какой-то момент на тебя снизойдёт озарение и ты осознаешь, что классы, объекты, методы и вот это всё - суть отражение реальных объектов материального мира.
    После этого ты сможешь легко и непринуждённо писать в стиле ООП.
     
  • 2.37, _kp (ok), 23:55, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >>Никак не могу перейти с процедурного стиля на ООП

    Возможно задачи такие, куда ООП можно только за уши притянуть, а те куда ООП сам напрашивается.

    Например на микроконтроллерах редко ООП используют, разве что статические объекты. И не потому что ресурсов мало, сейчас их достаточно, а потому что решаемые контроллерами задачи редко сочетаются с ООП.

     
     
  • 3.41, Аноним (41), 03:39, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Все там сочетается. Каждая ножка, каждый управляющий бит в регистре - объект. Еще и посторонним закрываем доступ
     
     
  • 4.50, _kp (ok), 10:05, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >>Каждая ножка, каждый управляющий бит в регистре - объект.

    Ну это уже маразм.
    Во первых переписывать работу, того что и так реализовано в библиотеках, и тем более если переписывать не на Руст, то это 6апрасная трата времени, вместо решения задач.
    А во вторых не эффективно, ч что то рабочих примеров не встречал. ;)

    А вот протоколы связи вполне изящно вписываются в ООП.

     
  • 4.58, Tron is Whistling (?), 13:36, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Каждый управляющий бит в регистре - объект?
    Не целый регистр, а именно бит?
    Сочувствую.
     
  • 4.59, Tron is Whistling (?), 13:39, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я обычно семантический блок в объект собираю. У меня не микроконтроллеры конечно, но в вашем случае это будет набор регистров, отвечающий за _сущность_ (сиречь как раз _объект_). Разбивать регистры на объекты - это сильно.
     
  • 4.88, swarus (?), 02:45, 12/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Файловый дискрептор - число, неудобно можно, сдуру сложить, или в файловую функцию другое число подкинуть, среда разработки даже не вякнет, что ты не то пихаешь.
    А вот вместо файлового дискрептора объект и все становится на место.

    А вот порядок ножек мне складывать приходилось для эмуляция lpt, да и регистр для яркость плавно менять приходилось. Объекты тут лишние и только затрудняют отладку-понимание.

     
     
  • 5.91, Поле Name не забыто и не прощено (?), 14:19, 12/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Всё, кроме одного... вместо 4 допустим байт файлового дескриптора ты получаешь 8 байт на поинтер + 4 на дескриптор. Если там их полторы штуки - дело одно, но если как там описано каждой ноге свой объект, а ног миллиона полтора - тут уже эмбедовка может и не вытянуть :D
     
  • 2.72, Прохожий (??), 02:14, 11/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Всё, что я озвучу - это, конечно, банальщина Но раз человек спрашивает, почему ... большой текст свёрнут, показать
     
  • 2.78, Аноним (74), 14:17, 11/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Забыть на время про наследование, сконцентрироваться на том, что объекты - это такие мини-программы (класс), которые имеют внутреннее состояние (private), а друг с другом общаются по определенному протоколу (public-методы, реализующие интерфейс). При этом разные мини-программы, реализующие тот же интерфейс, полностью взаимозаменяемы без внешних изменений.

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

     

  • 1.32, Tron is Whistling (?), 22:23, 09/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Переопределение readonly-свойств допускается только внутри функции "__clone"

    О, костылики поехали. Любители стройных извращений ради мaкакеров наступают на заботливо самостоятельно расстеленные грабли, а весь этот бесполезный сахар по сути можно выкинуть.

     
     
  • 2.35, YetAnotherOnanym (ok), 23:36, 09/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Надо сначала огородить, а потом в ограде проковырять дырочку. Так и живём.
     

  • 1.36, YetAnotherOnanym (ok), 23:39, 09/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >   // Ранее для извлечения константы BAR нужно было вызывать
    >   constant(Foo::class . '::' . $name);
    >   // А теперь достаточно указать
    >   Foo::{$name};

    Фля... А с самого начала так нельзя было сделать?

     
     
  • 2.44, Анонус (?), 06:57, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Интуитивно и понятно было бы так: ClassName::$ConstantName без всякого дрочева с фигурными скобочками и ::class.
     
     
  • 3.60, Tron is Whistling (?), 13:43, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У меня такое ощущение, что среди core разработчиков PHP тоже победило смузихлёбство, увы.
     
  • 3.61, Прыгающий Ленивец (?), 18:20, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так было бы обращение к статической переменной класса
     
     
  • 4.81, Анонус (?), 18:17, 11/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Понятно.

    Не могу себе представить какой-то реальный юзкейс когда одновременно будут объявлены статическое свойство и константа класса с одинаковым именем.

    С этой точки зрения можно было бы запретить такое, и выдавать по запросу ClassName::$classOrConstantName то, что объявлено.

     
  • 3.102, Ананий (?), 16:59, 14/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Интуитивно понятно это А.B c А:B,як в Lua, а не А::B с A->B
    Но из-за идиотского legacy c объединением строк приходится смотреть на это убожество.
     

  • 1.40, Вы забыли заполнить поле Name (?), 03:11, 10/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    С синтаксисом намутили. Сложнее жабы уже стал.
     
     
  • 2.45, Анонус (?), 06:59, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пока ещё нет, дженерики не доехали, чтобы <всякое, T> появилось.
     

  • 1.42, Аноним (42), 03:57, 10/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    ООП - это неудачная попытка замаскировать процедурный стиль.
    Использование ООП приводит к выгоранию и шизофрении.
     
     
  • 2.47, YetAnotherOnanym (ok), 09:12, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это если пихать его туда, где он не нужен. ООП здорово облегчает создание сложных программ, но использование его для простых задач даёт просто ненужное усложнение.
     
  • 2.73, Прохожий (??), 02:24, 11/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Неудачная? Огромное количество разработчиков, которое использует ООП - сплошь идиоты или шизофреники? Очень смелое заявление.

    Такое ощущение, что ты просто не понимаешь, что это такое, и зачем это нужно.

     
     
  • 3.92, Аноним (-), 16:27, 12/06/2023 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.46, Дед Анон (?), 07:53, 10/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не могу никак изучить какой либо фреймворк. Раз 10 пытался начать писать с помощью laravel, но так ничего и не вышло. В итоге проекты по 7тс строк кода написаны на чистом php. Работают хорошо, написал кучу своих классов, мне всё нравится, но без знания фреймворком я такой никому не нужен на рынке труда)
     
     
  • 2.48, YetAnotherOnanym (ok), 09:20, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > написал кучу своих классов

    Причеши и выкати как новый фреймворк.

     
     
  • 3.56, пох. (?), 13:13, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Так ему зарплату хочется, а не чтоб нахаляву другие получали зарплаты. Так он этого слона не продаст.

     
     
  • 4.62, YetAnotherOnanym (ok), 19:11, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Иногда можно Дорогому Мирозданию заплатить опенсорсным кодом, и тогда оно, может быть, не заберет ногу.
     
     
  • 5.63, пох. (?), 19:30, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    тому из Райфа не очень помогло.

     
     
  • 6.64, YetAnotherOnanym (ok), 19:39, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Эээ... это кто?
     
     
  • 7.66, пох. (?), 19:55, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Эээ... это кто?

    Был такой, тоже очень нужный и полезный сотрудник уважаемого (очень!) банка, сам Максут признал полезным.
    Интегрировал карту мир, да не выинтегрировал - получил "золотое письмо" и мироздание забрало голову.

     
     
  • 8.69, YetAnotherOnanym (ok), 22:10, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ааа Нашёл ... текст свёрнут, показать
     
  • 2.51, Tron is Whistling (?), 11:06, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А, не заморачивайся - нужен. Просто плохо искал.
    У меня по 30-80к строк несколько проектов есть, без внешних фреймворков - всё норм.
    Даже в одну морду (если припёрло, было дело...) поддерживаются очень легко.
     
  • 2.52, Gemorroj (ok), 11:14, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    попробуй через composer по компонентам подтягивать (тот же symfony), так со временем втянешься.
     
  • 2.57, пох. (?), 13:18, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    а зачем ты выбрал самый бестолковый и неповоротливый? Yii вроде вполне еще можно осилить какой-нибудь и вполне сможешь конкурировать с 500рублевыми аутсорсерами из одной запрещенной страны.

     
  • 2.68, mmm (??), 21:19, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На мой взгляд весь фокус с фрэймоворками в совместной работе. Только тогда понимаешь всю прелесть SOLID, шаблонов проектирования и фреймворков
     
     
  • 3.70, Tron is Whistling (?), 22:37, 10/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Разгребать конюшню всем колхозом - это мило.
     
     
  • 4.80, пох. (?), 17:50, 11/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Там не про разгребать а про наваливать. В целом да, похоже он прав. Т.е. когда надо вдевятером выносить ребенка за один месяц во что бы то ни стало - фреймворк поможет (при условии что его все девять знают), а в твоей либе я буду этот месяц разбираться, прежде чем смогу что-то дописать.

    А поддерживать это потом... да ипппись оно конем. Следующий заказчик есть уже!

     
     
  • 5.83, Tron is Whistling (?), 23:16, 11/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ды ладно, либа с нормальной докой и очевидными паттернами применения :)
    Куда проще монструозных ларавелов, где надо рулоны кривой-косой документации вычитать, прежде чем юзать.
    А в остальном всё так.
     
     
  • 6.85, пох. (?), 00:31, 12/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ды ладно, либа с нормальной докой и очевидными паттернами применения

    ее читать надо. И каждый раз выяснять - вот это вот не вписалось в паттерны и надо дописывать самому или забыли документировать.
    Причем любой произвольно взятый васян с улицы ее видит в первый раз.

    > Куда проще монструозных ларавелов, где надо рулоны кривой-косой документации вычитать

    некогда читать, спринт не ждет! (Я уж не знаю как сейчас принято - копипастить из вопроса на стеке или просто спрашивать чятгпт "напиши мне код". А про твою либу ни тот ни другой не в курсе.)

    Но вообще-то предполагалось что HR наловил нам рыбов у которых в перках "уже прочитал" и именно на то с чем мы тут работаем (потому что этих м@к@к-мутантов мильены с тыщами и всегда можно найти с нужными галочками в профиле) и они сразу приступят к вынашиванию.

     
     
  • 7.95, Tron is Whistling (?), 09:30, 13/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ды там читать нечего, обёртка сделана так, чтобы конечному юзеру вообще ни на что почти, кроме своего кода, заморачиваться не приходилось.

    class MyTask extends \TaskLib\Task
    {
       ...

       public function main()
       {
          ...
          yield true;
          ...
          $store = new \MyCode\ModelStore();
          $item = $store['myItem'];
          $item->lastChanged = time();
          $item->update();
          ...
          yield true;
          ...
          $subTaskResult = yield new \MyCode\MySubtask('arg1', 'arg2');
          ...
          $subTask1 = $this->addSubTask(new \MyCode\MySubtask('arg3', 'arg4'));
          $subTask2 = $this->addSubTask(new \MyCode\MySubtask('arg5', 'arg6'));
          yield new \TaskLib\Task\WaitOnAll($subTask1, $subTask2);
          $subTaskResult1 = $subTask1->taskResult;
          $subTaskResult2 = $subTask2->taskResult;
          ...
          yield true;
          ...
          return 'Task result';
       }
    }

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

     

  • 1.49, мимопроходяга (?), 09:57, 10/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Чуваки давайте сюда.
    Там как раз эту темку обсуждают.)
    https://forum.guns.ru/forummessage/68/2871004.html
     
  • 1.53, Tron is Whistling (?), 11:24, 10/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Лучше бы перегрузку операторов и ещё типизированные варианты для функций-методов добавили, чтобы if в них не фигачить, вместо вот этого всего бессмысленного сахара для макaкинга.
     
     
  • 2.104, ш (?), 19:38, 01/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    не нужно этого всего. там только один тип - юнион структура звал
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру