The OpenNET Project / Index page

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

Релиз языка программирования PHP 8.3

23.11.2023 21:01

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

Ключевые изменения в PHP 8.3:

  • Во время клонирования классов предоставлена возможность повторной инициализации свойств с атрибутом "readonly". Переопределение readonly-свойств допускается только внутри функции "__clone":
    
       readonly class Post
       {
           public function __construct(
               public DateTime $createdAt,
           ) {}
           public function __clone()
           {
               $this->createdAt = new DateTime(); // разрешено, несмотря на то, что свойство "createdAt" доступно в режиме только для чтения.
           }
       }
    
  • Предоставлена возможность использования констант с указанием типа в классах, типажах и перечислениях:
    
       class Foo
       {
           const string BAR = 'baz'; 
       } 
    
  • Добавлена поддержка атрибута "#[Override]", при помощи которого разработчик может информировать интерпретатор о том, что отмеченный метод переопределяет какой-то родительский метод. В случае если переопределения не будет, интерпретатор выведет ошибку.
  • Изменена обработка отрицательных значений в качестве индекса массива. Например, при добавлении в пустой массив элемента с номером "-5" и добавлении ещё одного элемента, раньше второй элемент сохранялся с индексом "0", а начиная с версии PHP 8.3 будет сохраняться с индексом "-4". $array = []; $array[-5] = 'a'; $array[] = 'b'; var_export($array); // Было array (-5 => 'a', 0 => 'b') // Стало array (-5 => 'a', -4 => 'b')
  • Добавлена возможность создания анонимных классов в режиме только для чтения:
    
       $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.
  • Внесены изменения в функцию range(). Обеспечена генерация исключения при попытке передачи объектов, ресурсов или массивов в переменных, определяющих границы диапазона, а также при указании отрицательного значения в параметре $step или неопределённого значения в любом параметре. Обеспечен вывод списка символов при указании строк вместо чисел (например, "range('5', 'z')").
  • Изменено поведение типажей со статическими свойствами, которые теперь переопределяют статические свойства, унаследованные из родительского класса.
  • Добавлены настройки для защиты от переполнения стека. В 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().
  • Добавлена функция mb_str_pad, представляющая собой аналог строковой функции str_pad(), рассчитанный на работу с многобайтовыми кодировками, такими как UTF-8.
  • Разрешено создание замыканий из методов и передачи именованных аргументов в эти замыкания.
    
       $test = new Test();
       $closure = $test->magic(...);
       $closure(a: 'hello', b: 'world'); 
    
  • Изменено поведение при обработке видимости констант в интерфейсах.
    
       interface I {
           public const FOO = 'foo';
       }
       class C implements I {
           private const FOO = 'foo';
       }
    
  • Расширены возможности функций array_sum(), array_product(), posix_getrlimit(), gc_status(), class_alias(), mysqli_poll(), array_pad() и proc_get_status().
  • Объявлена устаревшей возможность передачи отрицательного значения $widths в mb_strimwidth(). Удалена константа NumberFormatter::TYPE_CURRENCY. Прекращена поддержка вызова функции ldap_connect() с двумя параметрами $host и $port. Удалена настройка opcache.consistency_checks.


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


Обсуждение (199) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, DEF (?), 21:29, 23/11/2023 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –4 +/
     

  • 1.2, Дмитрий (??), 21:31, 23/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Когда строгие коллекции??
     
     
  • 2.3, Аноним (3), 21:44, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Для этого дженерики нужны. Можно, конечно, сделать только массивы, как в Golang, а потом страдать, но в пхп и так достаточно страданий
     
     
  • 3.9, Аноним (9), 22:19, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вроде в HHVM есть дженерики, может и в PHP когда-нибудь завезут, если решать что они там нужны
     
  • 3.10, Вы забыли заполнить поле Name (?), 22:47, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • –6 +/
    > Для этого дженерики нужны.

    А еще указание variance. Ибо если делать как в Java, то получается нетипобезопасно, потому что массивы коварианты. Хорошо хоть в golang инварианты.

     
     
  • 4.50, Вы забыли заполнить поле Name (?), 07:59, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Так, например, след. код на java

    class Main {
      public static void main(String[] args) {
        String strings[] = {"house", "daisy"};
        Object objects[] = strings; // covariant

        objects[1] = "cauliflower"; // works fine
        objects[0] = 5;             // throws exception
      }
    }

     
  • 4.52, Вы забыли заполнить поле Name (?), 08:05, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Для этого дженерики нужны.
    > А еще указание variance. Ибо если делать как в Java, то получается
    > нетипобезопасно, потому что массивы коварианты. Хорошо хоть в golang инварианты.

    Также есть хорошее сравнение по variance в одном из последниз PEP питона https://peps.python.org/pep-0695/#summary

     
  • 3.60, Vlad VIolentiy (?), 08:33, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Решается через PHPDoc и добавления анализаторов кода типа psalm и phpstan
     
  • 2.179, Tron is Whistling (?), 12:36, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не проще сразу другой язык выбрать?
     

  • 1.4, пох. (?), 21:49, 23/11/2023 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –7 +/
     

     ....ответы скрыты (4)

  • 1.11, Аноним (11), 22:48, 23/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –17 +/
    кто знает, а пы-хы-пы такой же безопасный как раст или как си дидов?
     
     
  • 2.12, Аноним (11), 22:51, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • –4 +/
    поставлю вопрос по другому, какой безопасный язык программирования использовать для веба?
     
     
  • 3.13, Смузихлёб (ok), 23:02, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > какой безопасный язык программирования использовать для веба

    Будто у тебя есть выбор. Ответ на моей аватарке.

     
     
  • 4.82, Аноним (82), 11:47, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    тут спрашивают про безопасный, а не про язык для смузихлёбов
     
  • 3.14, Аноним (14), 23:03, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Пых уязвимей ассемблера, если ты хотел об этом знать.
     
  • 3.15, Аноним (15), 23:05, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    F#
     
  • 3.17, Тот_ещё_аноним (ok), 23:51, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    На вебне эксплуатируют кривизну поделки или браузера и от языка сервера это мало зависит.
    Вордпресс и битрикс на пыжике например, вспотеешь обижать, если(ага) правильно стоят.
    За жабаскрипт или го? Да так же точно всё.

    А бебезопастность памяти? Так уборщик мусора есть.

     
  • 3.24, Аноним (24), 01:33, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Для веба нужно HTML.
    Ещё немного (НЕМНОГО Я СКАЗАЛ!) css.
     
     
  • 4.69, BlackRot (ok), 09:56, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Html, css, Javascript а ещё уметь юзать графические редакторы, бек на php тож не лишним будет
     
  • 3.39, nox. (?), 07:01, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Можно попробовать C (например, с фреймворком Wt). Но в любом случае безопасность упирается в WEB сервер.
     
  • 3.130, vitektm (?), 18:22, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Вопрос в  другом,  напишет какой-то Васян на безопасном языке, а его поезд собъёт. Владельцу бизнеса искать еще одного Васяна???

    Так в России поездов больше, чем не криворуких модно-кодеров.
    Бизнесу на твою моду как то наплевать. Бизнесу  прибыль нужна!
     
  • 3.147, x3who (?), 00:34, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > поставлю вопрос по другому, какой безопасный язык программирования использовать для веба?

    Поставлю вопрос иначе. Большинство приложений в мире сейчас сервируют веб. Так нахера его писать на жручих тормозных "безопасных" есыках, если даже на них обезьяна с гранатой всё равно напишет что-то опасное? Капиталисты убивают планету ставя печки для исполнения этого тормозного кода лишь бы не нанимать кодеров, способных писать безопасный код на "опасных" есыках!

     
  • 2.51, Аноним (51), 08:04, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +6 +/
    А кто сказал, что раст безопасный?
     
     
  • 3.55, Аноним (55), 08:12, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +7 +/
    какие-то маркетологи
     

  • 1.19, nonon (?), 00:35, 24/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –15 +/
    Думаю пора этот язык не развивать. А рекомендовать переходить на другие ЯП.

    На Пайтон. Он куда более универсальный, хоть и похож
    На модный go
    Та даже на JS

    Жаль что до сих пор когда гуглишь какой первый ЯП учить натыкаешься на PHP

     
     
  • 2.20, alchekalin (ok), 00:42, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Думаю, сэр немного заблуждается. Так что не жаль.
     
  • 2.22, Александр (??), 01:12, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Из динамически типизируемых скриптовых PHP по структуре как раз больше всего подходит для бэкенда. То есть, это такой баланс: когда проект достаточно здоровый, чтобы писать его на python, но и нет необходимости скорости, чтобы переходить на шарпы/джаву. В целом, свою нишу занимает. 8-ой не трогал, писал на 7-ом. За исключением пары исторических моментов, язык понравился.
    Js в беке имхо тот ещё мазохизм. Тогда уж лучше Ts
     
     
  • 3.35, Другой Александр (?), 05:46, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Надо ввести жёсткую модерацию на попытки уместить в одном предложении слова "скорость" и "джава".
     
     
  • 4.90, тоже Аноним (ok), 12:57, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Или познакомиться с продуктами JetBrains, давно развенчавшими этот стереотип.
     
     
  • 5.129, Вы забыли заполнить поле Name (?), 17:55, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    У вас ошибка, должно быть подтвердившими
     
  • 5.212, MT (ok), 01:42, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Если только не видел PhpED.
     
     
  • 6.217, тоже Аноним (ok), 11:39, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Win-only IDE в 2023? Не видел и не увижу.
     
     
  • 7.218, MT (ok), 12:53, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Речь не об ОС, а о быстродействии.
     
     
  • 8.219, тоже Аноним (ok), 13:26, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Если что-то летает, но только под Мак - мне от этого ни горячо, ни холодно И ес... текст свёрнут, показать
     
     
  • 9.221, MT (ok), 15:31, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Java-продукция JetBrains работала заметно медленнее версии PhpED, выпущенной в т... текст свёрнут, показать
     
     
  • 10.222, тоже Аноним (ok), 15:41, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Если они выполняют одни и те же алгоритмы в сферическом вакууме Право, если вы ... текст свёрнут, показать
     
     
  • 11.223, MT (ok), 15:43, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    PhpED был быстрее не в теории, а на практике В одно и то же время, в одной и то... текст свёрнут, показать
     
     
  • 12.224, тоже Аноним (ok), 15:57, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А Notepad был еще быстрее Переходите уже на него и не делайте мне голову ... текст свёрнут, показать
     
     
  • 13.225, MT (ok), 16:08, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    У ПО одного класса в одно и то же время обычно паритет по функциональности ... текст свёрнут, показать
     
     
  • 14.226, тоже Аноним (ok), 16:35, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я, наверное, мало знаю IT Не могу припомнить ни одного примера, подтверждающего... текст свёрнут, показать
     
  • 4.175, Александр (??), 01:26, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В сравнении с чем? С каким-нибудь python и думаю PHP быстрее
     
  • 3.37, Аноним (37), 06:24, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Нишу дохлого легаси занимает успешно, да. Кол-во вакансий не даст соврать.
     
     
  • 4.176, Александр (??), 01:31, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    И что мне должно сказать количество вакансий? То, что сейчас у каждой компании по 3-х страничному сайту? Это и без количества вакансий понятно. Компаний много, всем нужен интернет магаз на коленке собранный или лендинг какой-нибудь. Тут и заходят все эти python, node.js и PHP. Считай их ниша. Для чего-то по серьёзнее (что, понятно, нужно реже) берут C#, java. В совсем нагруженных случаях вообще C++. От сюда и получаем такую статистику по вакансиям, а вовсе не от того, что легаси
     
  • 3.67, Аноним (67), 09:52, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • –7 +/
    «Больше всего подходит для бэкенда» и переменные, мутирующие от того, что на них косо посмотрят, в одном предложении…
     
     
  • 4.177, Александр (??), 01:33, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А в python или js всё ровно с этим? Особенно в js
     
  • 2.25, Аноним (24), 01:35, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Не то, чтоб я за пхп, но в чём преимущество питона в вебе?
    Ну чем оно лучше? Нет, можно и питон, но чем он лучше?
     
     
  • 3.44, Аноним (44), 07:23, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Он быстрее пыха вот в чём.
     
     
  • 4.53, Аноним (51), 08:07, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Сомнительно, а с учетом того, что PHP где нужна скорость компилируется JIT, то и неверно.
     
  • 4.56, Сталин (?), 08:14, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Нет, не быстрее )
     
  • 4.58, Аноним (58), 08:27, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А вот тут по подробнее. Пхп с версии 7 вроди как нехило так ускорился, за счет использования jit компиляции и обошел по скорости питон, причем значительно. Не?
     
     
  • 5.73, Tron is Whistling (?), 10:05, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    JIT в 8
    Но тем не менее 7 нехило так ускорилась, в частности за счёт прекращения копирования части структур до момента, пока их не поменяют.
     
  • 4.59, Бывалый смузихлёб (?), 08:31, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +9 +/
    настолько быстрее что в разы медленнее
     
  • 4.70, User (??), 10:01, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Учитывая, что на голом что Пыхе, что змеюке под веб никто почитай и не пишет - то сравнивать надо не "языки", а конкретные фреймворки умножая на коэффициент руко...крылости разработчиков и тут возможны разнообразные варианты. Впрочем, для большинства проектов голый пырформантц в первую тройку критериев для выбора не попадает.
     
     
  • 5.91, тоже Аноним (ok), 12:59, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Производительность веб-проекта - что на пыхе, что на питоне, да даже на жабоскрипте - в основном зависит от того, насколько хорошо разработчик знает... SQL.
     
     
  • 6.101, User (??), 14:05, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Производительность веб-проекта - что на пыхе, что на питоне, да даже на
    > жабоскрипте - в основном зависит от того, насколько хорошо разработчик знает...
    > SQL.

    Вообще да, но нет ). Или вернее, от того, насколько хорошо SQL знает разработчик ORM\framework'а - поскольку в большинстве случаев будет примерно дефолт :).

     
     
  • 7.106, тоже Аноним (ok), 14:19, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > насколько хорошо SQL знает разработчик ORM\framework

    Эти ребята обычно все-таки разбираются, и проблемы с конечным разработчиком.
    Например, запрос можно сформировать с пагинацией, а можно без. На тестовых объемах разница незаметна, а вот через несколько лет работы полумиллионная таблица, которую чисто для вывода первых 20 записей запрашивают целиком... ну, не будем о Битриксе ;)


     
     
  • 8.190, Аноним (-), 13:32, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    вы про что limit 20 нет в запросе логика там какая - чтобы без доп запроса пок... текст свёрнут, показать
     
     
  • 9.192, тоже Аноним (ok), 14:35, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    code bitrix modules sale admin transact_admin php - dbTransactList CSaleUse... текст свёрнут, показать
     
  • 7.196, Нанонимус53 (?), 14:55, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то нет. CRUD какой-нибудь сильно на производительность не влияет, а сложные запросы всё равно приходится писать на SQL, просто оборачивая результаты их работы в объекты ORM. Так что действительно тут больше зависит от знания SQL и оптимизации базы данных.

    Часть логики, если она сильно влияет на производительность, пишется модулями на C, и тогда в целом тоже всё равно - это модуль для PHP или для Питона. Мы так писали например функции для работы с географическими данными, типа рассчёта расстояния между точками на карте с учётом кривизны планеты, быструю выборку из нескольких близких точек и т.п.

     
     
  • 8.213, User (??), 07:29, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Хм У нас на последнее postgis воткнут - в общем-то хватает, впрочем задач крупн... текст свёрнут, показать
     
  • 5.92, YetAnotherOnanym (ok), 13:21, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > голый пырформантц в первую тройку критериев для выбора не попадает

    Это временно. Пока начальство не вызвало и не попросило объяснить счета за хостинг и/или почему всё так тормозит.

     
     
  • 6.100, User (??), 13:58, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> голый пырформантц в первую тройку критериев для выбора не попадает
    > Это временно. Пока начальство не вызвало и не попросило объяснить счета за
    > хостинг и/или почему всё так тормозит.

    АБСОЛЮТНОЕ большинство веб-проектов до этого светлого момента просто никогда естественным образом не дорастает, вот в чем фокус.

     
     
  • 7.128, YetAnotherOnanym (ok), 17:27, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да и фиг с ними. Главное, что кодер на модном язычке получит свой гонорар и свалит в следующий стартап.
     
     
  • 8.136, User (??), 21:10, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Клиент получает требуемую функциональность, разработчик - гонорар, win-win практ... текст свёрнут, показать
     
     
  • 9.152, x3who (?), 01:02, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вообще в реальном мире бизнес борется за живучесть и задаётся вопросами техпо... текст свёрнут, показать
     
     
  • 10.173, User (??), 19:28, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну в общем да Стоимость поддержки решения в критериях выбора - есть Тыр-пыр-фо... текст свёрнут, показать
     
  • 9.154, YetAnotherOnanym (ok), 01:15, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Клиент планирует посещаемость своих сервисов и сейчас, и через год, и через три ... текст свёрнут, показать
     
     
  • 10.172, User (??), 19:25, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Айтишники-такие-айтишники За первые два года закрывается больше половины бизнес... текст свёрнут, показать
     
     
  • 11.178, YetAnotherOnanym (ok), 10:57, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Однодневки-прачечные, как правило, обходятся без сайтов, даже одностраничных виз... текст свёрнут, показать
     
     
  • 12.181, User (??), 12:49, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, надеюсь что про it вы знаете хоть чуть-чуть больше, чем про бизнес , да ... текст свёрнут, показать
     
     
  • 13.203, YetAnotherOnanym (ok), 16:09, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Вы своё знание и того, и другого продемонстрировали Так что да, надежда - это в... текст свёрнут, показать
     
  • 4.102, nonon (?), 14:06, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если учитывать что писать на нескольких языках такое себе.. типа прыгать с одного на другой так себе удовольствие..

    На пайтоне можно писать скрипты, программы для десктопа. машинное обучение, нейронные сети, ну и бекенд..
    На пхп только бекенд. Если нет у вас в планах писать всю жизнь бекенд, мне кажется вы освоете новый ЯП который вам понравится больше не для бека, для других целей, но начнете писать на нем так же и бекед) Хех)
    Там на гошке, либо еще на чем-то

     
  • 2.30, OpenEcho (?), 02:12, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > Думаю пора этот язык не развивать.

    Обоснуй, а то звучишь так авторитетно, прям так и хочется поверить

    > На Пайтон. Он куда более универсальный, хоть и похож

    Ты по скорости не пробовал его с сабжем сравнивать?

    > На модный go

    Го - значительно больше низкоуровневый, не всегда это надо

    > Та даже на JS

    Сорри, но жoпy с пальцем сравнивать, JS - асинхронный, управляемый событиями, когда  PHP - синхронный.

    > Жаль что до сих пор когда гуглишь какой первый ЯП учить натыкаешься на PHP

    Use the right tool for a job

     
     
  • 3.43, лул (?), 07:13, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Юзай Swoole, ежели асинхронщину желаешь.
     
  • 3.80, Tron is Whistling (?), 11:18, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, у меня допустим ныне свой стек короутин для PHP. Линейный (в отличие от реакта, который заставляет строить ужасающие своим размахом деревья), очень коротенький (тысячи 2 строк на всё про всё включая сахар), простой и пристойный. Будет время - выложу в паблик, хотя смузям не зайдёт.
     
     
  • 4.81, Tron is Whistling (?), 11:20, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    И да, с не***ческим перформансом - ~10000000/s переключений задач на 3.4GHz ядре, если задачи на генераторах. Это всего ничего - ~350 тактов на переключение. Если на файберах - в ~1.6-1.8 раза больше тактов, меньше задач.
     
  • 2.38, Аноним (38), 06:35, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >рекомендовать переходить на другие ЯП.

    На Пайтон. Он куда более универсальный, хоть и похож

    А какая универсальность яп тебе нужна для веба? Сайты должны загружать страницы и все. Как бы я не любил php, но с этим он отлично справляется, собственно для этого его и создавали.

     
     
  • 3.57, Аноним (55), 08:17, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    php после 4й версии закончился
    Сейчас мы наблюдаем какую-то химеру
     
  • 2.61, Аноним (58), 08:37, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Его бы немного почистить от лишнего, создается впечатление что уж больно много всего в языке. Создается впечатление что внем функции под каждый чих...(утрированно)
     
     
  • 3.89, OpenEcho (?), 12:51, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > создается впечатление что уж больно много всего в языке.

    Классический вариант, когда подхватывается корпоративно

    > Создается впечатление что внем функции под каждый чих...(утрированно)

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

     
  • 3.93, Tron is Whistling (?), 13:33, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    И вот в этом его прелесть. Для простейшей задачи не надо тащить 100500 зависимостей из разных npshit'ов.
     
  • 3.103, тоже Аноним (ok), 14:10, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > в нем функции под каждый чих

    Это пугает только новичков, которые в панике представляют, что это все надо вызубрить.
    На самом деле, это как раз приятная особенность пыха: в его стандартной библиотеке куча оптимального кода на С, которым можно воспользоваться, как только тебе понадобилась эта оптимальность - вызвав одну из этих многочисленных функций (собственно, просто оберток над вызовом библиотечной функции).
    Например, недавно при обсуждении одного довольно ресурсоемкого алгоритма, реализованного на чистом пыхе, мне подсказали функцию, о существовании которой я и не подозревал, хотя давно пишу на РНР. С минимальными изменениями алгоритма замена одного из его блоков на эту функцию ускорила его в 25 раз!

     
     
  • 4.131, vitektm (?), 18:23, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Озвучьте функцию все равно аноним
     
     
  • 5.133, тоже Аноним (ok), 19:01, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А смысл? Это не какая-то серебряная пуля, которая сделает любому быстрее и лучше.
    Это оптимальная реализация конкретного алгоритма, который мне подходил по логике.
     
  • 4.184, Tron is Whistling (?), 12:52, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В пыхе нынешнем конечно есть свои idiosyncrazy с производительностью, если надо ... большой текст свёрнут, показать
     
  • 2.104, noc101 (ok), 14:11, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > На Пайтон. Он куда более универсальный, хоть и похож

    Пару букв схожи? Рукалицо
    Почему униварсальность значит лучше?

    >На модный go

    Го немного про другое. Хотя и на нем есть веб, но все таки он про другое

    >Та даже на JS

    А где он выполняется, ты знаешь? А где РНР? Разницу объяснять?

    >Жаль что до сих пор когда гуглишь какой первый ЯП учить натыкаешься на PHP

    Жаль что есть такие люди как ты, которые крестовой отверткой гвозди забивают и кричат что микроскоп с этим справится лучше.

    РНР не зря лучший веб язык для написания ВЕБа разного уровня.
    Работает быстро. Работает прозрачно. Обучение дешевое и быстрое. Универсальный.

     
  • 2.146, Ivan_83 (ok), 22:44, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Пыхтон - обречённый язык из за dependency hell.
    Он ещё кое как работает обмазанный venv и докерами, но всё больше скатывается к состоянию: "работает только на машине разработчика".
    Учитывая то что там часть пакетов - биндинги которым нужны либы из системы, то оно не поддерживаемое для больших проектов.

    JS - там проще, всё написано на самом JS, это сразу на порядок меньше головняков у тех кто это использует и обслуживает.

    GO - всё нужное опять же носит с собой.

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

     
  • 2.148, x3who (?), 00:45, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Язык-то красивый сам по себе, только тормоз. Питон тоже тормоз. JS тоже тормоз. Go - ну если не загружать его по новой на каждый запрос, будет быстрее. Но он тоже "безопасный", то бишь обработка строк, из которых чуть более чем полностью состоит веб, будет в разы дороже "опасных" языков. Тормоза - это не только user experience,  это ещё затраты на более мощное железо, на электричество для этого железа в датацентрах, на электричество для кондиционеров для отвода тепла выработанного железом в датацентрах в атмосферу нашей планетки. Т.н. "безопасные" языки программирования опасны для человечества.
     
     
  • 3.150, тоже Аноним (ok), 00:51, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    На современном веб-сайте обычно работают три языка-посредника.
    JS на фронте - между пользователем и веб-сервером.
    РНР на бэке - между веб-сервером и сервером БД.
    и SQL в БД - между тем, что понадобилось сайту, и реальностью его хранения.
    Вот последний бывает критичен по производительности, а чаще - по умению на нем писать.
    Два других же, как правило, не играют в скорости работы сайта решительно никакой роли, если писал на них не совсем уж жoпopук.
     
     
  • 4.153, x3who (?), 01:10, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    От всей души желаю _некоторым_ разработчикам _некоторых_ сайтов пользоваться Ras... большой текст свёрнут, показать
     
     
  • 5.169, тоже Аноним (ok), 13:16, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Нынешние малинки несут на себе четыре ядра и восемь гигов памяти. Уделывая значительное число офисных машинок ;)
     
     
  • 6.170, x3who (?), 13:53, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Именно такой я и пользуюсь. Некоторые сайты тормозят нещадно.
     
     
  • 7.171, тоже Аноним (ok), 14:31, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, там скорее не кривые скрипты, а визуальные вытребеньки типа параллаксов и видеоподложек.
    Есть в этом мире вещи настолько кривые, что выпрямить их можно только единственным способом...
     
  • 3.186, Tron is Whistling (?), 13:11, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Тормоз в PHP начинается тогда, когда идёт совершеннейшее непонимание принципов его работы.
    Овердекомпозиция с методом на каждые 10 строк - одно из таковых. Вызов метода в PHP - удовольствие ОЧЕНЬ дорогое.
     
     
  • 4.191, x3who (?), 14:35, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Тормоз в PHP начинается тогда, когда идёт совершеннейшее непонимание принципов его работы.
    > Овердекомпозиция с методом на каждые 10 строк - одно из таковых. Вызов
    > метода в PHP - удовольствие ОЧЕНЬ дорогое.

    Разрабочиков Nextcloud сложно заподозрить в совершенном непонимании пыха, однако как же он тормозит!

     
     
  • 5.201, Tron is Whistling (?), 15:14, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Вы внутрь Nextcloud заглядывали?
    Тут не то, что заподозрить, тут как раз таки всё "на лице".
    Так можно писать исключительно на компилируемом языке.
     
     
  • 6.214, x3who (?), 10:38, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Вы внутрь Nextcloud заглядывали?
    > Тут не то, что заподозрить, тут как раз таки всё "на лице".
    > Так можно писать исключительно на компилируемом языке.

    Если такое можно писать только на компилируемом языке, то авторы как бэ ни при чем. Виновны только в выборе негодной платформы.

     
     
  • 7.215, Tron is Whistling (?), 10:40, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    И я о том же. Выбирают PHP, а пишут как на жабах.
     
     
  • 8.228, x3who (?), 16:45, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Тут не понял Насколько я знаю, в пыхе Zend-оптимизатор компилирует текст програ... текст свёрнут, показать
     
     
  • 9.230, Tron is Whistling (?), 23:15, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Так, да не совсем В жабе типы и структуры анализируются предварительно, и собра... текст свёрнут, показать
     
     
  • 10.232, x3who (?), 00:23, 28/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Мне даже такие детали не важны Важен сам факт, что пых тормознее даже джавы Де... текст свёрнут, показать
     
     
  • 11.235, Аноним (235), 00:48, 01/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Строчить и строчить однотипные комменты в вебе Хватить тратить такты и кремний... текст свёрнут, показать
     
  • 7.216, Tron is Whistling (?), 10:41, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    И не "такое", а "так", не путайте.
    Попытка перенести подходы с компилируемых языков на динамический обречены быть унылым тормозом.
     
     
  • 8.227, x3who (?), 16:43, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Да, пардон, пропустил логическую связку Можно писать и без вызовов функций вооб... текст свёрнут, показать
     
     
  • 9.231, Tron is Whistling (?), 23:16, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Если вкратце - то да, при овердекомпозиции пых - плохой выбор ... текст свёрнут, показать
     

     ....большая нить свёрнута, показать (80)

  • 1.23, Sw00p aka Jerom (?), 01:26, 24/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >> // Было array (-5 => 'a', 0 => 'b') // Стало array (-5 => 'a', -4 => 'b')

    ухх, а если пихнуть -0?

     
     
  • 2.27, Тот_ещё_аноним (ok), 01:46, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Imho -0 equ 0
     
     
  • 3.40, nox. (?), 07:04, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В математическом смысле нет. Да и в программировании с плавающей точкой тоже.
     
  • 3.63, Sw00p aka Jerom (?), 08:42, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    -0 в пхп нет кажись (
     
     
  • 4.134, Тот_ещё_аноним (ok), 19:19, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    "динамическая типизация" жеж
    Он "-0" возьмет как аргумент "знаковое целое" по синтаксису и приведёт к "индекс массива", "-" в процессе отпадёт

    А жаль)

     
  • 2.88, Lost Inside (ok), 12:47, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В чем смысл пихания -0, если можно пихнуть просто 0? Я имею в виду - практический смысл, а не трансцендентные фантазии иррационалистов от разработки.
     
     
  • 3.109, Sw00p aka Jerom (?), 14:36, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В чем смысл пихания -0, если можно пихнуть просто 0? Я имею
    > в виду - практический смысл, а не трансцендентные фантазии иррационалистов от
    > разработки.

    я его явно не пихаю, он у меня может быть результатом вычисления индекса, к примеру (x / y) где x = 0, а y = -5, а в пхп как выше указали, -0 === 0

    https://ru.wikipedia.org/wiki/%E2%88%920_(%D0%BF%;D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)

     
     
  • 4.113, Lost Inside (ok), 15:04, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > он у меня может быть результатом вычисления

    Современные CPU не сбрасывают автоматически бит SF, если в результате целочисленной операции все разряды результата сброшены?
    Господи, помилуй нас, грешных...

     
     
  • 5.120, Sw00p aka Jerom (?), 15:32, 24/11/2023 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 5.180, Tron is Whistling (?), 12:40, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    У IPU SF - это просто копия старшего бита результата, поэтому про -0 можно забыть.
    В FPU ситуация немножко иная.
    Посколько в данном случае индексы у PHP приводятся к строке через целые числа - про -0 можете забыть.
     
  • 4.158, Аноним (158), 02:57, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    $ php -r 'echo 0 / -100, "\n";'
    0

    $ php -r 'echo 0 === -0 ? "true" : "false", "\n";'
    true

    У меня какой-то другой пхп стоит?

     
     
  • 5.167, Sw00p aka Jerom (?), 12:14, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    -0 нет в пхп
     
  • 2.94, Tron is Whistling (?), 13:35, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Интересно, кто-то вообще этим как-то пользовался?
    В смысле задефайнить номер первого элемента, но не остальные.
    Это ж прямой путь налететь на грабли.
     
     
  • 3.118, Sw00p aka Jerom (?), 15:19, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Интересно, кто-то вообще этим как-то пользовался?
    > В смысле задефайнить номер первого элемента, но не остальные.
    > Это ж прямой путь налететь на грабли.

    индекс первого элемента - 0 (в обычном понимании плоского "сишного" массива), -0 по сути должен был быть индексом последнего элемента, а в пхп нет понятия плоского "сишного" массива, там ключ-значение. Индексы "нумерического массива" даже в пхп это ключ-значение.  

     
     
  • 4.141, Tron is Whistling (?), 21:54, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В PHP все массивы - ассоциативные, то есть хеши, да.
     

  • 1.28, 11111001010 (?), 01:51, 24/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Чот он каким-то монстром стал, давно на нём не писал ничего.
     
     
  • 2.31, Аноним (31), 03:17, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, старые версии на 98 винде работают и поддерживают Utf-8. Если не гоняться за дизайном, можно  PHP сайты с IE5 подружить.
     
     
  • 3.33, 11111001010 (?), 04:17, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем ты утрируешь? 😠😡
     
  • 3.84, hshhhhh (ok), 12:23, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    пхп сайты можно даже с lynx и wap подружить.
     
     
  • 4.149, x3who (?), 00:48, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Только непонятно при чем тут ЯП воще :)
     

  • 1.46, Аноним (46), 07:29, 24/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это же php с классами, а значит php++. Странно что js с классами тоже не назвали js++.
     
     
  • 2.54, Аноним (51), 08:08, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Есть (был, выкуплен) Objective-J.
     

  • 1.62, Аноним (58), 08:42, 24/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    О! Вопрос. А вот язык Юля(Julia), что думает о вэбе?
    Слышал что ей восхищались, вот интересно стало...
     
     
  • 2.64, Аноним (64), 08:56, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Юля больше не вставляет.
     
     
  • 3.65, Аноним (58), 09:19, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Mojo?
     
     
  • 4.74, Аноним (74), 10:09, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    This
     
  • 4.220, Аноним (220), 14:08, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Только Julia в отличии от Mojo существует в реальности.
     

  • 1.68, Анонус (?), 09:53, 24/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > Разрешено создание замыканий из методов и передачи именованных аргументов в эти замыкания.

    господи какой трэш и ужас щас начнется

     
  • 1.76, YetAnotherOnanym (ok), 10:48, 24/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Override

    Для Эллочки-людоедочки со словарным запасом в 30 слов.
    > генерация отдельных исключений (...) в случае проблем, возникающих в операциях работы с датами и временем
    > генерация исключения при попытке передачи объектов, ресурсов или массивов в переменных, определяющих границы диапазона

    Это же не по пхп-шному! Тру-пхп-вэй - это молча интерпретировать полученную переменную хоть как-нибудь, выдать хоть какое-нибудь значение, непредсказуемое, не укладывающееся ни в какую человеческую логику, но выдать и работать с ней дальше.

     
     
  • 2.77, Tron is Whistling (?), 11:13, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Учитывая что мой код состоит процентов на 15 из обработки ошибок, могу сказать, что проблемы были, но не столь существенные. Зато выброс исключений где не надо прилично увеличит объём этого кода бесполезными зажимами try { ... } catch (\Exception $e) { }, просто чтобы оно не проваливалось по стеку. Потому что кроме исключения можно получить например false.
     
  • 2.78, Tron is Whistling (?), 11:15, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А делать из PHP жабу, где все эти цепочки исключений отрабатываются фиг знает где, и в итоге всё равно осыпаются тут и там - я вообще не знаю, чем поколение смузи думает. Нормальная C-подобная отработка ошибок: получил false или другой код ошибки - отработал.
     
     
  • 3.79, Tron is Whistling (?), 11:15, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    (и только если не хочешь отрабатывать на месте - вот тогда бросил исключение. САМ)
     

  • 1.95, Tron is Whistling (?), 13:39, 24/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну вот #[Override] - это извращение.
    Почему бы просто override не добавить.
    Типа public override function xyzzy().
    Куда-то оно не туда после 8.1 сворачивать начало совсем...
     
     
  • 2.96, Tron is Whistling (?), 13:40, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Анонимные классы - это тоже какой-то 3.14дец. Зачем??? Вся суть определений классов в их статичности.
     
     
  • 3.116, Аноним (116), 15:16, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Зачем вообще в вебе классы, когда задача в 90 % случаев просто сделать запрос к базе и вернуть результат.
     
     
  • 4.155, x3who (?), 01:17, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем вообще в вебе классы, когда задача в 90 % случаев просто
    > сделать запрос к базе и вернуть результат.

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

     
     
  • 5.168, Sw00p aka Jerom (?), 12:18, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    ага, тенденция микросервисов и классов :))
     
  • 4.182, Аноним (-), 12:50, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    это вид сарказма такой? а типовые взаимодействия с бд, что и является основой, каждый раз вручную что-ли кодить? в них же все обработки/чеки и по типизации, кста. автолоадером легко подхватывается и прекрасно работает. помимо них, ещё куча, которая с массивами работает, вычисления проводит и передаёт их предыдущим. нууу... 2/3 процедурных простыней в моём проекте, примерно, скрыто так. чяднт?
     
  • 2.97, Tron is Whistling (?), 13:41, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не, я понимаю, что это очередная попытка решить проблему отсутствия множественного наследования - теперь можно на ходу лепить ***ту из классов, но лучше бы первое сделали.
     
     
  • 3.156, x3who (?), 01:20, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Не, я понимаю, что это очередная попытка решить проблему отсутствия множественного наследования
    > - теперь можно на ходу лепить ***ту из классов, но лучше
    > бы первое сделали.

    Множественное наследование - это извращение. Сам унаследуй и от папы и от мамы - тогда поймешь по реакции окружающих :) Интерфейсы рулят, и, судя по статье, они в пыхе есть.

     
     
  • 4.161, Tron is Whistling (?), 09:27, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Сразу видно дальше хеллоуврота или сборки из всяких pypinpm'ов не писавших...
     
  • 3.183, Аноним (-), 12:52, 26/11/2023 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.98, Tron is Whistling (?), 13:43, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А того, чего не хватает - так и нет.
    А не хватает
    - Множественного наследования (уже упомянул)
    - Перегрузки базовых операторов
    - Перегрузки методов (варианты наборов аргументов), ну и заодно к ним сахарка темплейтов под типы, последнее для тех, кто очень любит типизацию и смузи
     
     
  • 3.105, Аноним (64), 14:14, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    иди со своими перегрузками и множественным наследованием сам знаешь куда
     
  • 3.107, тоже Аноним (ok), 14:25, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > А не хватает

    Пришел в Пых из Крестов, где этого есть. Но и там не пользовался, и здесь не вижу необходимости.
    Множественное наследование - признак неудачной архитектуры ООП. Интерфейсы в РНР есть.
    Перегрузки и прочий синтаксический сахар не решает никаких реальных проблем, только затрудняет чтение кода.
    Вот более жесткой типизации, конечно, не хватает. Но тут бытие определяет - пых постоянно работает с внешними данными, которые, как правило - строки. Все равно приводить и валидировать самому.

     
     
  • 4.115, Аноним (116), 15:15, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Пришел в Пых из Крестов

    А чего сразу не в Бейсик?

     
     
  • 5.121, тоже Аноним (ok), 15:36, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Опять он здесь. Пропал тред.
     
  • 4.123, YetAnotherOnanym (ok), 16:54, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > и там не пользовался, и здесь не вижу необходимости

    Речь не мальчика, но мужа. Респект.

     
  • 4.157, x3who (?), 01:32, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот более жесткой типизации, конечно, не хватает. Но тут бытие определяет -
    > пых постоянно работает с внешними данными, которые, как правило - строки.
    > Все равно приводить и валидировать самому.

    Вот в классе и валидировать  - подходят ему эти данные или нет

     
     
  • 5.185, Аноним (-), 13:08, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    +

    правда, чеки/конвертеры стоит иногда в отдельные классы выделять, чтобы массив, одними, правильно собрать с инпута и отдать другим на передачу в бд. в хеллоувордах всё это не проблема, конечно же))

     
  • 3.117, подрывник (?), 15:17, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Наследование реализации — корень всех зол.
    Да и не надо его, когда есть интерфейсы классов и подмешивание через "include".
     
     
  • 4.142, Tron is Whistling (?), 21:55, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Подмешивание через include - это пять.
    ...
    Я даже не знаю.
    Похоже не только пых свернул куда-то не туда. Шею.
     
     
  • 5.165, нах. (?), 10:16, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    какие разработчики, такие и технологии.
     
  • 4.187, Аноним (-), 13:13, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    да композицией, агрегацией это всё решается внутри, не надо ничего подмешивать. классы с неймспейсами легко же тянутся
     
     
  • 5.194, Tron is Whistling (?), 14:50, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Архитектурно есть у тебя сокеты например У разных сокетов например ну, сокетна... большой текст свёрнут, показать
     
     
  • 6.195, Tron is Whistling (?), 14:53, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Как пример жёсткого костылинга class PollingSocketPrototype implements ATL ITas... большой текст свёрнут, показать
     
  • 6.198, Tron is Whistling (?), 15:00, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я понимаю, что ты в линейной вебне, которая в основном банальная модель и шаблонизатор - вряд ли это встретишь, но PHP уже давно вышел за рамки вебни, и поэтому вместо вот этого всего странного #[Override] сахарка хотелось бы чего-то серьёзного :)
     
  • 6.236, Аноним (235), 00:58, 01/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Открой для себя композицию, делегирование и стратегии. Помогает от этой вот лажи, что ты пишешь, и множественного наследования избавиться.
     
     
  • 7.237, Tron is Whistling (?), 14:22, 01/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Попей смузи, и расслабься.
    Когда нечем композировать - композировать нечем. Такие дела.
     
  • 5.197, Tron is Whistling (?), 14:58, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну и да, множественное наследование - это как раз часть композиции-агрегации, которой нет, и это печально.
     
     
  • 6.199, Tron is Whistling (?), 15:01, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Причём реализовать-то уже просто - эмуляция выше легко бы могла быть сделана через use Class хотя бы, не Trait, а класс, который затягивает все интерфейсы и прочее содержимое эквивалентно Trait. Но нет, приходится костылять.
     
     
  • 7.200, Tron is Whistling (?), 15:07, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    class Stream
    {
        inherit \ATL\Task; # ATL socket is a task
        inherit \ATL\Socket\PollingSocket; # we are a polling socket
        inherit \ATL\Socket\StreamBase; # use PHP Stream socket base
        inherit \ATL\Socket\Capabilities\ReadBytes; # support readBytes
        inherit \ATL\Socket\Capabilities\DelimitedReads; # support delimited reads
    }

    Специально написал inherit вместо use - как бы это могло быть. Красивенько, да, по сравнению с костылями выше?

     
     
  • 8.202, тоже Аноним (ok), 15:22, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А решить это заменой наследования композицией - точно не вариант Начиная с sock... текст свёрнут, показать
     
     
  • 9.204, Tron is Whistling (?), 16:18, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Никак там не решишь, у разных типов сокетов разные включения, они могут частично... текст свёрнут, показать
     
     
  • 10.205, Tron is Whistling (?), 16:23, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Just for fun покажу минимальный тест сокета class Test extends ATL Task ... большой текст свёрнут, показать
     
     
  • 11.208, тоже Аноним (ok), 18:28, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Не знаком с используемой библиотекой, но в приведенном коде таски с сокетами сме... текст свёрнут, показать
     
     
  • 12.209, Tron is Whistling (?), 20:57, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В конкретной реализации - не можно Данный сокет, повторюсь, живёт своей жизнью... текст свёрнут, показать
     
  • 12.210, Tron is Whistling (?), 21:11, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    И да, член у сокета есть, но ему кроме него надо ещё в зависимости от типа затян... текст свёрнут, показать
     
     
  • 13.211, тоже Аноним (ok), 00:32, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я говорил про тот код, который увидел В нем сокет используется как таск только ... текст свёрнут, показать
     
  • 10.206, Tron is Whistling (?), 16:39, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Сокет вообще как таск живёт своей жизнью - он не обязательно прибит к конкретном... текст свёрнут, показать
     
     
  • 11.207, Tron is Whistling (?), 16:42, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну или например увидел в начале PROXY-протокол - отдал разбирать PROXY, разобрал... текст свёрнут, показать
     

     ....большая нить свёрнута, показать (38)

  • 1.111, Аноним (111), 14:37, 24/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Все это доживает последние дни. Ведь слышим веб, подразумеваем JS, причем, как бэкэнд, так и фронтэнд.
     
     
  • 2.112, тоже Аноним (ok), 14:51, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > слышим веб, подразумеваем JS

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

     
     
  • 3.114, Аноним (116), 15:13, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Сейчас лично для меня самое неудобное в создании сайтов

    Это твои проблемы. П.с. слово "сайты" лишь говорит, что к коммерческой разработке ты имеешь отношение примерно никакое.

     
  • 3.188, Аноним (-), 13:16, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    соглашусь, но, другого же способа рилтайм обновления веба и нет никакого иного, ведь так? меня вот, если честно, тож наламывает что надо жс учить, чтоб свой бэк на пыхе актуализировать, а что делать?
     
     
  • 4.193, тоже Аноним (ok), 14:40, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > тож наламывает что надо жс учить

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

     
  • 2.122, Аноним (122), 16:31, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Да-да-да. Пыхыпэ переехал Перл, АСП, ЖСП, КолдФьюжен, Руби. Скоро и Нода туда же отползет.
     
     
  • 3.162, Tron is Whistling (?), 09:32, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Отползёт, но не до конца - с нодой удалось попасть в хитрую нишу, когда фронтендщики начали костылить прочее из того, что умеют. Другое дело, что всё это исполняется на по сути моновендорном, да ещё и браузерном, движке кривого-косого по сути своей JS, и поэтому представляет из себя феерический костыль как по рахитектуре так и по перспективам.

    А пых жил и жить будет, потому что пых - это помимо языка ещё и очень удобная обёртка из коробки над толстенной массой низкоуровневых сишных либ, сдобренная именно тем, чего для работы с ними обычно и не хватает. Правда в последнее время, повторюсь, всё свернуло куда-то, кхм, в Javy или просто в афедрон, но всё равно ок.

     
     
  • 4.164, нах. (?), 10:14, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Отползёт, но не до конца - с нодой удалось попасть в хитрую нишу, когда фронтендщики начали
    > костылить прочее из того, что умеют.

    как будто им на пехепе кто-то мешал?

    там скорее ниша именно в бесконечной помойке лефтпадов - да, первым начал именно пехепе, но до такой простоты хуже воровства все же не дотянул.

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

    напомню, чем в (поделке на игого) grafana заменили (внезапно, ставший неподдерживаемым лефтпад) создавалку, фак... снапшотов графичков?

    А тут - всего лишь js от него. Все, расслабься - для современной индус-трии именно такие решения и являются наиболее оптимальными.

     
  • 2.166, ptr (??), 11:22, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну COBOL уже лет 40 хоронят, а 6.4 вышел в мае прошлого года. Legacy он такой, не убиваемый.
     

  • 1.132, Аноним (132), 18:41, 24/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    На PHP не программировал лет 10. Там наверно уже изменений как у инопланетных технологий. Верно?
     
     
  • 2.135, Gemorroj (ok), 19:49, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    так-то да. пытается на java похожим быть.
    единственная реальная проблема в php - отсутствие искоробочной асинхронщины/параллельщины. ну и типизация массивов пригодилась бы.
     
     
  • 3.189, Аноним (-), 13:26, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > типизация массивов пригодилась бы

    в классах это всё делается - инпут обрабатывать и бд правильную архитектуру - это все равно ручками всё

    > отсутствие искоробочной асинхронщины/параллельщины

    да, так бы и не было повального жс везде

     
  • 2.137, Аноним (137), 21:36, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Скорее подход поменялся. Если раньше, во времена 4 пыхи, она была шаблонизатором, то теперь это монструозное нечто, где фреймворк на фреймворке фреймворком погоняет.
     
     
  • 3.163, Tron is Whistling (?), 09:53, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Пых это как раз то место, где вообще фреймворки не нужны по сути.
    Но мир смузи без монструозных конструкций не умеет.
     

  • 1.139, Аноним (137), 21:41, 24/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Последний раз писал на PHP4, застав ещё PHP3. Но потом вернулся обратно на Perl, благо, работы хватит до пенсии, тем более, осталось не много :)
     
  • 1.151, фыаыаафыа (?), 00:58, 25/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Лучший язык снова обновился, а это значит я не умру с голоду, и буду дальше получать 5к евро, чисто благодаря тому что пхп существует.
     
  • 1.229, Аноним (229), 17:05, 27/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Граждание, почему PHP не используется в банковской отрасли? Или используется?
    И второй вопрос, если PHP так стремится быть похожим на Java, сможет ли он её где-нибудь потеснить?
     
     
  • 2.233, Аноним (64), 09:20, 28/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем тащить это хлам в финансовую сферу? В энтерпрайзе рулит c#.
     
     
  • 3.234, Аноним (229), 03:01, 29/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Почему сразу хлам-то?
     
  • 2.238, Tron is Whistling (?), 14:30, 01/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что сертификацию будет пройти очень сложно.
    Но для вебни - используется, почему нет.
     
  • 2.239, Tron is Whistling (?), 14:32, 01/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Те же payment gateways и вёб-платёжки на пыхе встречаются.
     

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



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

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