The OpenNET Project / Index page

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

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

12.06.2022 22:42

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

  • Добавлены отдельные типы "false" и "null", которые могут принимать только одно допустимое значение и использоваться, например, для возвращения функцией признака завершения с ошибкой или пустого значения. Ранее "false" и "null" могли использоваться только в связке с другими типами (например, "string|false"), а теперь могут применяться отдельно:
    
       function alwaysFalse(): false
       {
           return false;
       }
    
  • Добавлена возможность пометки класса доступным только для чтения. Свойства в подобных классах могут быть заданы только один раз, после чего не будут доступны для изменения. Ранее только для чтения могли помечаться отдельные свойства класса, а теперь разом можно включить данный режим для всех свойств класса. Указание флага "readonly" на уровне класса также блокирует динамическое добавление свойств в класс.
    
       readonly class Post
       {
           public function __construct(
               public string $title, 
               public Author $author,
           ) {}
       }
       $post = new Post(/* … */);
       $post->unknown = 'wrong'; // Error: Cannot create dynamic property Post::$unknown
    
  • Объявлена устаревшей возможность динамического создания свойств в классе (как "post->unknown" в примере выше). В PHP 9.0 обращение к свойствам, изначально не определённым в классе, будет приводить к ошибке (ErrorException). Классы, предоставляющие методы __get и __set для создания свойств, или динамические свойства в stdClass продолжат работать без изменений, прекратится поддержка только неявной работы с несуществующими свойствами для того чтобы защитить разработчика от скрытых ошибок. Для сохранения работы старого кода предложен атрибут "#[AllowDynamicProperties]", разрешающий использование динамических свойств.
  • Предоставлена возможность фильтрации конфиденциальных параметров в данных трассировки стека, выводимых во время ошибки. Вырезание определённой информации может потребоваться когда сведения о возникающих ошибках автоматически направляются в сторонние сервисы, отслеживающие проблемы и информирующие о них разработчиков. Например, можно исключить из трассировки параметры, включающие имена пользователей, пароли и переменные окружения.
    
       function test(
           $foo,
           #[\SensitiveParameter] $password,
           $baz
       ) {
           throw new Exception('Error');
       }
       test('foo', 'password', 'baz');
     
       Fatal error: Uncaught Exception: Error in test.php:8
       Stack trace:
       #0 test.php(11): test('foo',  Object(SensitiveParameterValue), 'baz')
       #1 {main}
         thrown in test.php on line 8
    
  • Объявлена устаревшей возможность подстановки значений переменных в строки при помощи выражений "${var}" и ${(var)}". Поддержка обычно используемых подстановок "{$var}" и "$var" сохранена. Например:
    
       "Hello {$world}"; OK
       "Hello $world";   OK 
       "Hello ${world}"; Deprecated: Using ${} in strings is deprecated
    
  • Объявлены устаревшими частично поддерживаемые вызываемые объекты (callable), которые могут быть вызваны через "call_user_func($callable)", но не поддерживают вызов в форме "$callable()":
    
       "self::method"
       "parent::method"
       "static::method"
       ["self", "method"]
       ["parent", "method"]
       ["static", "method"]
       ["Foo", "Bar::method"]
       [new Foo, "Bar::method"]
    
  • Реализовано независимое от локали преобразование регистра символов. Функции, подобные strtolower() и strtoupper(), теперь всегда преобразуют регистр символов в диапазоне ASCII как при выставлении локали "С".


  1. Главная ссылка к новости (https://www.php.net/index.php#...)
  2. OpenNews: Релиз языка программирования PHP 8.1
  3. OpenNews: Объявлено о создании организации PHP Foundation
  4. OpenNews: Выпуск PHPStan 1.0, статического анализатора для кода на языке PHP
  5. OpenNews: Уязвимость в PHP, позволяющая обойти ограничения, заданные в php.ini
  6. OpenNews: Отчёт о компрометации git-репозитория и базы пользователей проекта PHP
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/57340-php
Ключевые слова: php
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (112) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.4, Аноним (4), 23:05, 12/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +11 +/
    К слову сказать PHP безопаснее раста.  
     
     
  • 2.6, Аноним (6), 23:07, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Меня всегда удивляло как можно словить исполнение произвольного кода на разборе печенек или заголовков.
     
     
  • 3.37, Аноним (37), 03:14, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А на выходе за границу массива?
     
     
  • 4.73, Аноним (6), 09:58, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В динамическом интерпретируемом языке?
     
     
  • 5.122, Аноним (-), 21:40, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Но Раст не интерпретируем, и в нём нет динамических типов.
     
     
  • 6.123, Аноним (123), 21:45, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Раст это и не язык, а пародия на недоразумение.  
     

  • 1.8, Аноним (8), 23:18, 12/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > call_user_func

    Эх, помню эту фигню. А еще помню, что в пыхе нельзя было вызывать функцию и тут же обратиться к элементу возвращенного массива. Вот так делать было нельзя: hello()[42]. Нужно было сначала сохранить массив в переменную, а потом уже обращаться по индексу. Это было в году скажем 2010. В это время, напоминаю, уже лет 40 как человек ступил на Луну. Строились небоскребы. Соорудили большой адронный коллайдер. А пых не осилил доставание элемента возвращенного массива.

     
     
  • 2.64, Онаним (?), 09:31, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    hello()[42]
    Ну надо сказать, очень хорошо, что было нельзя.
    В плотном коде - плохо читабельная конструкция, хоть и очевидная.
    Не, когда весь код очередного интернет-магазинчика сводится к последовательным вызовам фреймворка - терпимо наверное.
     
  • 2.88, Аноним (88), 12:31, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В то время, как человеку понадобились десятки тысяч лет развития, php за не полных 30 лет развития держит львиную долю веб-сайтов. Не осилил аноним в разработку, ничего тут не поделать.
     
  • 2.94, hshhhhh (ok), 13:32, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Вот так делать было нельзя: hello()[42].

    уже давно можно

     

  • 1.9, YetAnotherOnanym (ok), 23:42, 12/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    False и null - это типы? Ну охренеть...
     
     
  • 2.23, Аноним (8), 01:31, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Тип -- это множество допустимых значений. Тип false имеет единственно допустимое значение: false. Тип boolean является юнионом типов true и false. Другое дело, зачем понадобилась настолько тонкая система типов во всего лишь шаблонизаторе Personal Home Page...
     
     
  • 3.34, Аноним (34), 02:04, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    По сути это константы.
     
  • 3.63, YetAnotherOnanym (ok), 09:31, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Тип -- это множество допустимых значений.

    Эээ... в мире PHP распространено такое толкование термина "тип"? Это многое объясняет.

     
     
  • 4.65, Онаним (?), 09:33, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В мире PHP нет стойких типов. Есть попытка подкостылить подобие, но она, как ни странно, только снижает производительность в итоге.
     
  • 4.147, Аноним (147), 07:26, 15/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Что много это объясняет если не секрет?
     
     
  • 5.149, Аноним (147), 07:37, 15/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    *что именно это объясняет
     
  • 4.148, Аноним (147), 07:36, 15/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    IEEE 31320-2:2012
    3.1.45
    data type:
    A set of values and operations on those values. 

    То есть в "мире php" просто почитали стандарт.

     
     
  • 5.150, YetAnotherOnanym (ok), 10:04, 15/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В (23) что-то говорилось об "operations"?
     
  • 2.134, Аноним (147), 00:09, 14/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    NoneType это отдельный тип в python? Афегедь!
    FalseClass и NilClass отдельные типы п ruby. Что же такое в мире творится, дайте другую планету, Я сойду.
    null ещё и в js отдельный тип
     
  • 2.135, Аноним (147), 00:16, 14/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Что ожидать от языка, у программистов на котором IQ лишь на 2-3 пункта выше чем у программистов на js (по исследованиям посетителей opennet)
     

  • 1.10, InuYasha (??), 00:00, 13/06/2022 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –3 +/
     
  • 1.14, Аноним (-), 00:31, 13/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Какой-то пхп стал слишком сложным, в чем тогда выгода его использовать? Популярные социальные сети написаны на варианте пхп 4, а не на ооп с типизацией и фреймворками
     
     
  • 2.16, Аноним (16), 00:40, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Индустрия радуется и просит добавки. Хочет код бизнес логики иметь почти как на джаве, но платить за пхп.
     
     
  • 3.18, Аноним (18), 01:00, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Давно уже как за джаву платят. Вот 500к например https://hh.ru/vacancy/66220550
     
     
  • 4.21, Аноним (-), 01:06, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Там ещё и Go хотят
     
  • 4.53, Аноним (53), 08:15, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У них PHP работает на фронтенде. Проходим мимо, они и за миллион никого не найдут. Место такое.  
     
     
  • 5.100, Наноним (?), 14:31, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    "В проекте PHP работает на фронтенде к высоконагруженному сервису хранения данных."
    За "фронтенд" может считаться бэкенд к вебморде управления облаком. Для сервиса хранения данных это действительно фронтенд.

    Правда наивно полагать что из вилки 200-500 т.р. будут платить ближе к 500. Скорее всего на собесе будут давить и унижать, доказывая что разработчик - говно, так чтобы снизить до нижней планки. Такой разлёт в вилке вообще говорит о том что работодатель не совсем понимает кто ему нужен и какого качества.

     
     
  • 6.124, Аноним (123), 21:46, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Как я тебя понимаю, давай обнимемся.  Абьюзивный работодатель это всегда плохо.  
     
  • 3.19, penetrator (?), 01:01, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    а получит очередное говно типа JS, только разве что там, где доступны более приятные в использовании языки
     
     
  • 4.55, Аноним (53), 08:19, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Так какая разница индустрии факлии это или нет? Если пипол ака потребитель хавает надо ему еще больше насыпать.  
     
  • 2.77, Аноним (77), 10:39, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > пхп 4

    Это было золотое время для языка, тот самый баланс между простотой, стабильностью и скоростью. А потом пошло сплошное усложнение ради усложнения. Я всегда задаю оппонентам лишь один вопрос, от которого у них взрывается пятая точка: "что можно написать на пхп8, чего нельзя было сделать на 4 пыхе".

     
     
  • 3.87, Аноним (87), 12:30, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    По magic quotes ностальгируешь?
     
  • 3.90, Аноним (88), 12:41, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Всё усложнили, да. Говнокодить стало сложнее, понимаю. Но вы не переживайте, кто-нибудь изобретёт машину времени и вы вернётесь в свое любимое золотое время.
     
  • 3.95, Онанистмус (?), 13:42, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Глянь исходный код Битрикса и вопросы по поводу php 4 должны отпасть сами собой. Чего стоит повсеместное использование ассоциативных массивов вместо классов с типизированными переменными.
    Я бы сказал зачем писать на php если есть python.
     
     
  • 4.103, Аноним (77), 14:36, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > использование ассоциативных массивов вместо классов

    Что в этом плохого? И, кстати,  я вообще ярый противник ООП, т.к. за более чем 20 лет программирования и работы с совершенно разными инструментами и языками, так и не нашел оправдания для использования этой методологии, если проект не лютый Ынтерпрайз на пару миллионов строк кода.

     
     
  • 5.111, Аноним (111), 16:06, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А с другой стороны, чего плохого в ООП? Хорошо подобранные абстракции с внятным интерфейсом работают одинаково при любом количестве строк в проекте. Оформление в класс уже как-то документирует логику данных.
     
  • 5.114, Аноним (114), 17:11, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > так и не нашел оправдания для использования этой методологии

    Зачем ты так жестоко ломаешь скрепы свидетелю ООП, ему всю жизнь всякие "авторитетные" дяденьки вдалбливали, что ООП есть православный канон, и нет жизни за пределами ООП, теперь у него БСОД

     

  • 1.22, Аноним (22), 01:30, 13/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    все эти языки достигли своего потолка, уже не знают что бы туда прикрутить эдакого. Шляпа все это, в конечном счете все вернется на плюсы и к большему времени провождения у костра за кружкой кофе. а эти все технологии и новые версии яп, дичь это все для молодых и глупых с огнем в глазах которых эксплуатируют взрослые умные дяди.
     
     
  • 2.26, Аноним (26), 01:42, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Сам пиши на своих кривых плюсах.

    А мне и на c# хорошо.

     
     
  • 3.32, Без аргументов (?), 02:02, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Как там с кроссплатформенностью?
     
     
  • 4.35, Аноним (34), 02:08, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    никак даже в пределах виндовсов.
     
  • 4.45, leap42 (ok), 05:50, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Как там с кроссплатформенностью?

    Прекрасно, тыкаю иногда на Fedora. Не работает чисто виндовый стаф аля тамошний GUI. Но во-первых, GUI в 2022 никому кроме хелло вордеров не нужен, во-вторых есть переносимые варианты.

     
     
  • 5.54, Аноним (53), 08:18, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ты прям серьёзно? Сам же говоришь что работает он плохо, какие-то мутные «переносимые варианты», Гуя нет, но работает конечно же «Прекресно». Даже непонятно это когнитивное искажение или уже недалекий ум?
     
     
  • 6.59, Самый Лучший Гусь (?), 09:00, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Гуй существует лишь для секретарш, домохозяек и быдлокодеров, удовлетворяющих их потребности. Лишь в воспалённом телевидением, алкоголем и прочими веществами надолго засиживается идея о графическом представлении интерфейсов. Эта идея столь же абсурдна, сколь отказ языка в пользу наскальной живописи или неконтекстуальных жестов. Это одна из немногих линий трендов постмодернистской деградации. А светлое будущее за CLI!
     
     
  • 7.69, Онаним (?), 09:42, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Гуй ныне прекрасно средствами браузеров реализуется.
    За исключением очень специфичных вещей, таких как CAD и игры.
     
     
  • 8.79, Аноним (79), 11:42, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ловите пыхера, электронщика ... текст свёрнут, показать
     
     
  • 9.86, Онаним (?), 12:25, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Не, за электрон - это к жыжесерям ... текст свёрнут, показать
     
     
  • 10.125, Аноним (123), 21:47, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Но ты же пыхер, а топишь за электорн ... текст свёрнут, показать
     
     
  • 11.132, Онаним (?), 23:09, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Кто тебе сказал, что браузер - это электрон Тебе соврали ... текст свёрнут, показать
     
  • 6.153, leap42 (ok), 03:57, 22/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Ты прям серьёзно? Сам же говоришь что работает он плохо, какие-то мутные
    > «переносимые варианты», Гуя нет, но работает конечно же «Прекресно».
    > Даже непонятно это когнитивное искажение или уже недалекий ум?

    Серьёзно. Работает хорошо. Какой GUI нужен бэкендам для REST и Web? В крайнем случае есть web-морда. Недалекий ум - считать, что кросплатформенный GUI не может быть от сторонних разработчиков.

     
  • 5.83, Ан (??), 11:52, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Для кроссплатформенного гуя есть Авалония: https://avaloniaui.net/
     
  • 2.46, Бывалый смузихлёб (?), 06:05, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Однажды достался в поддержку сайт, серверная часть которого была на плюсах и полностью самописной
    Причём, там не выдавалась отдельно просто статика включая html и сервак на плюсах отвечал на небольшие запросы с сайта каким-нибудь json’ом, а был он там именно вместо пыха - т.е генерировал html и был сделан с тоннами багов
    А началось всё с того что типам нужно было на сайте отображать показания с какого-то датчика и не придумали ничего лучше как вообще весь бэк запилить на пюсах

    Всё-таки, сишка и плюсы годятся далеко не для всего

    Ну а я тогда обрел первый седой волос

     
     
  • 3.85, Аноним (85), 12:14, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    https://www.webtoolkit.eu/wt ну да, ну да...
     
     
  • 4.96, Бывалый смузихлёб (?), 13:48, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Commercial License:
    > Dbo €175
    > Wt + Dbo €599

    ну да, ну да...

     
     
  • 5.98, Аноним (85), 14:01, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Двойное лицензирование? Не, не слышал...

    Wt есть в репозиториях всех популярных дистров, плюс элементарно собирается из исходников, ставь и юзай.

     
     
  • 6.115, Бывалый смузихлёб (?), 17:13, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Мне совершенно без разницы что это ибо лезть в это, разумеется, не собираюсь по ... большой текст свёрнут, показать
     
     
  • 7.136, Аноним (85), 02:55, 14/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Юзал Wt для создания микросервиса для специфической обработки данных, естественно, с соответствующим API. Возможности Wt по генерации html там использовались тоже, для веб-морды микросервиса с описанием, онлайн-справкой к API и т.п. Отличная чтука, очень удобно. Собственно, от пыхового бэкенда это отличается очень сильно по идеологии, в случае Wt юзер оперирует со stateful аппликухой. Так что ты, родной, по всем пунктам попал пальцем в небо, с чем и спешу поздравить.
     
     
  • 8.138, Бывалый смузихлёб (?), 08:47, 14/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    ты ведь даже понятия не имеешь о пыховом бэкенде, коего на любой вкус было более... текст свёрнут, показать
     
     
  • 9.152, Аноним (85), 15:08, 15/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Занятно поболтать с экспертом по сортам какашек ... текст свёрнут, показать
     
  • 2.57, Аноним (57), 08:40, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    когда будет с++50 тогда может быть, хотя к этому моменту с++ уже превратится в раст:)🤦
    Имхо, лучше уж вернуться к мощному и элегантному lisp, а там где нужно, по минимуму использовать обычный Си!
     
     
  • 3.62, n00by (ok), 09:27, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Филипп Гринспен, здравствуйте. Ваше 10-е правило известно в России. Не надо тут писать ИМХО - сразу объявят нубом и заклюют, поскольку не знают расшифровки.
     
  • 3.78, pashev.ru (?), 11:17, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    https://vk.com/video462451825_456239454
     
  • 3.102, Наноним (?), 14:34, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Плюсы не смогут превратиться в Раст ни по какому сценарию, т.к. есть очень существенная идеологическая разница в языках.
     

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

  • 1.36, Аноним (77), 02:55, 13/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Пришло то время, когда пхп стал сложнее джавы 🧐💩
     
     
  • 2.82, OpenEcho (?), 11:51, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Пришло то время, когда пхп стал сложнее джавы

    Если спецификация языка будет описанна более чем в 750 страниц, как у жабы, то может быть :)

     
  • 2.140, Балабол (?), 10:03, 14/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    И чтоб не отставать, они придумали Котлин :P
     

  • 1.41, Аноним (41), 04:00, 13/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Помню был JPHP, чувак на Джаве запилил интерпретатор своего пхп
     
  • 1.47, Аноним (47), 06:11, 13/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Непонимаю почему они не запилят алиасы функций из стандартной библиотеки чтобы избавить от уродливого_неконститентного_неймина_в_ стиле_Си. Со временем все на них перейдут и будет красивый код почти как на джаве.
     
     
  • 2.48, Аноним (8), 06:26, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Тогда будут два способа вызвать одно и то же. Тут не просто алиас нужен, а единый консистентный дизайн апи, в том числе в вопросе обработки ошибок. А то видишь ли, одни функции в духе си - сигналят об ошибке через return ошибочное_значение. А другие - через throw. Вот где неконсистентность. Пых - это франкенштейн из си, явы и перла.
     
     
  • 3.70, Gemorroj (ok), 09:46, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    задепрекейтить старые названия.
     
     
  • 4.80, Аноним (79), 11:43, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Знаем мы один язык, который много чего задеприкетил во третьей версии. Питон с тех времен никто не любит (нет все любят питон)
     
  • 2.72, Онаним (?), 09:50, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    В последнее время и так слишком пытаются пых в жабу превратить.
    Вот зачем, спрашивается, делается попытка убрать создание динамических пропертей _изнутри_ класса.
    Со снаружи всё понятно. А изнутри... опять же, только для того, чтобы опечатки у макак детектились быстрее.

    Хорошо хоть через очередной костыль-атрибут оставлена возможность класс объявить работающим с динамическими пропертями - у меня допустим сложная схема-модель на таковых построена, и если убрать - __get() будет запускаться на каждое обращение к проперти, что уронит производительность модели данных в разы, она очень часто используемая.

     
     
  • 3.92, Аноним (88), 12:45, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Что мешает изнутри использовать более логичный массив? Или неопечатывающейся макаке не солидно в массивы?
     
  • 3.93, Аноним (111), 13:29, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Например затем, что используемое в родителе динамическое в наследнике может быть неявно использовано еще раз или объявлено и использовано, то есть это не класс, а черте что.
    Ваша проблема в том, что у вас один и тот же код работает на разных данных за счет динамической природы скриптового языка, сходство с ООП у вас чисто внешнее. В классическом ООП у вас будут классы моделей на каждую сущность, и соответственно вы будете обращаться к определенным в классе свойствам.
     
     
  • 4.104, Онаним (?), 14:38, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Не надо путать PHP с классическими языками, компилируемыми языками, общая модель тут - per request.
    Совершенно другая парадигма, совершенно другие подходы.
    В классических языках нет накладных расходов на ту же сборку приложения в рантайме.
    В JIT'овых есть, но там редко используется модель per request, и это чуточку спасает.
    А здесь загрузка 100500 файлов и создание классов - берёшь какую-нибудь Doctrine и быстро о***шь от того, сколько начинает занимать старт/сборка приложения.
    Да и модели здесь очень удобно как раз с "не классики" реализовывать - можно сделать один универсальный класс на всю модель, и экстендить его только логикой.
     
     
  • 5.112, Аноним (111), 16:51, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Опкод кэшировать научились еще черте когда, а с 5.5 оно стало из коробки.
    Эксперт без экспертизы очередной.
     
     
  • 6.113, Онаним (?), 16:57, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Я про 7.4+, с опкешем, родной. Ты просто не в теме.
     
  • 4.106, Онаним (?), 14:39, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Но да, вот это меня как раз и напрягает - в динамический язык пытаются притащить сахар для тех, кто может в классику, но совершенно не осиляет смену парадигмы. Не проще сразу Java взять тогда, и не мучать PHP?
     
     
  • 5.110, Аноним (111), 15:27, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Наверняка проще. Но тут наверно исторические причины, в т.ч. кадровые. Всевозможным вебстудиям, которые 10 лет разрабатывали на пхп, проще внедрить стандарты, не меняя инструмент.
    Массовый заказчик уже привык, что веб пишут на пхп.
    Опять же, на словах у всех солид ддд к⁣о⁣к⁣о⁣к⁣о, а на практике толстые контроллеры, где все по старинке.
     
     
  • 6.126, Аноним (123), 21:48, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что фреймворки старые и в них то уж точно никому не хочется ничего менять.  
     
  • 3.97, Gemorroj (ok), 13:59, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    возможность создавать динамические проперти негативно на производительности сказывается. когда-то никита попов это объяснял.
     
     
  • 4.101, Онаним (?), 14:32, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Угу. Но гораздо меньше, чем вызовы методов, накладные расходы на вызов в PHP - это ад, треш и угар.
     
  • 4.109, Онаним (?), 14:45, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Там и дополнительная типизация в теории могла производительность улучшить.
    Но на деле - как только мы начинаем типы аргументов фиксировать - появляется проверка типа при вызове, и мы имеем совершенно обратный эффект.
     
  • 2.91, Аноним (88), 12:42, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Фреймворки справляются с этой задачей. У каждого, вон, свой набор строк классов есть.
     

  • 1.49, DEF (?), 06:43, 13/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    PHP потихоньку превращается в Java.
     
     
  • 2.56, Аноним (53), 08:22, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Вот когда на пых на JVM начнет работать тогда и поговорим.
     
     
  • 3.60, Здрасьте (?), 09:20, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    https://github.com/jphp-group/jphp
     
     
  • 4.74, Аноним (53), 10:00, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так он и не заработал.
     
  • 2.58, onanim (?), 08:54, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > PHP потихоньку превращается в труъ ынтырпрайз язык программирования

    пофиксил

    >   "Hello ${world}"; Deprecated: Using ${} in strings is deprecated

    а вот это жаль, было удобно.

     
     
  • 3.61, Здрасьте (?), 09:20, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    уже сто лет как надо вот так: {$world}
     
  • 3.119, Аноним (119), 19:55, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > превращается в труъ ынтырпрайз язык программирования

    Вам без PHP "труъ ынтырпрайз" языков было недостаточно?

    Кажется, PHP взлетел как раз не из-за своей "труъ ынтырпрайзности", а наоборот.

     

  • 1.66, Аноним (66), 09:33, 13/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Радует, что язык всё же развивается в правильно направлении, хоть и хотелось бы, чтобы подобные изменения происходили быстрее.

    А кто знает почему не добавили тип 'true' в дополнение к 'false', чем он провинился?

     
     
  • 2.71, Gemorroj (ok), 09:49, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    true добавят в master ветке https://github.com/php/php-src/pull/8759
    а false сделали, потому что стандартная либа часто именно false выдает при ошибках. потом уже о true вспомнили.
     
     
  • 3.137, Аноним (34), 05:37, 14/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > true добавят в master ветке

    К чему такая спешка? Слишком быстрая разработка к добру не приведёт. Надо поотлаживать версий 5 хотя бы.

     
  • 2.75, Аноним (53), 10:01, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ты ведь сейчас предлагаешь заняться преждевременной оптимизацией, да? Так знай же что то это известный антипаттерн.  
     
     
  • 3.120, Аноним (119), 19:59, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > преждевременной оптимизацией
    > известный антипаттерн

    Это случайно не ты пишешь тормозной говнософт, который еле ворочается на распоследних воркстейшнах?

     
  • 2.105, Наноним (?), 14:39, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    "Правильное направление" - очень субъективное понятие.
    Они так и не пытаются убрать тонны говна в именовании функций и порядке аргументов. Хотя это нужно было сделать ещё в седьмой версии.
    Вместо того чтобы добавлять малонужный сахарок лучше бы сконцентрировались на том чтобы выработать чёткую картину языка и оптимизировали ядро.
     
     
  • 3.117, Онаним (?), 17:26, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Да ладно, не гони, ядро офигенно оптимизировали в 7, а JIT в 8 - вообще конфетка.
    Другое дело, что если в PHP пытаться говнокодить "классический ООП" с тысячами классов на каждые 3 строчки - никаких оптимизаций не хватит.
     
  • 3.121, Анончек (?), 20:05, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > "Правильное направление" - очень субъективное понятие.

    Эта простая истина мало до кого доходит, если вообще доходит.
    При этом все поголовно считают, что их интеллект выше среднего.

     

  • 1.81, Ан (??), 11:48, 13/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Минорщина.
     
  • 1.84, OpenEcho (?), 11:58, 13/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересная наблюдение, - в типизированных языках хайпают дженерики, а в не типизированных гнутся к типам, и где оно то место, где они посередине встретятся
     
     
  • 2.89, Аноним (111), 12:34, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не встретятся, это движение в одном направлении, где нетипизированные догоняют. Мальчики выросли, сбрили патлы и перелезли из футболок Slayer и Metallica в рубашечки и пиджачки.
    В ололо промышленной разработке типизация стандарт. Разработка консолидируется, все меньше рядовых скриптописателей и все больше команд разработки, следующих стандартам.
    Уже сейчас в скриптовых языках рулит типизация. Примеры - PHP и TypeScript (языки не типизированные по факту, но код пишут, как если бы они были типизированными).
     
     
  • 3.116, Онаним (?), 17:23, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Я тут недавно в нутро Yii залез, офигел, и вылез обратно.
    Как правильно выше заметили - у всех стройнота только на словах, а на деле костыль на костыле, лучше бы даже не пытались всё это городить, и писали так, как PHP предполагает.
     
     
  • 4.129, Аноним (119), 22:09, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Покажи свой код, правильный и некостыльный.
     
  • 4.130, Аноним (130), 22:20, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    За стройноту приходится платить часами ожидания обработки очередного реквеста.
    На Ларавеле "Hello World" без подключения к БД выдает аж 30 requests/sec. Зато фасады с контрактами
    в каждом файле.
     
     
  • 5.131, Онаним (?), 22:55, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Во-во.
    И это при том, что и стройноты в итоге тоже не получается.
     
  • 4.133, Аноним (133), 23:27, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Так китайский код же.

    Советую залезть в нутра разрабатывающегося сейчас Yii 3. Китаец отошел от дел, костылить некому уже.

     
  • 3.127, Анончек (?), 22:06, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Мальчики выросли, сбрили патлы и перелезли из футболок Slayer и Metallica в рубашечки и пиджачки.

    ...Обзавелись брюшком, геморроем, мозг заплыл жирком....

    Не, спасибо, предпочту спеца в футболке.

     
  • 2.99, Gemorroj (ok), 14:02, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    в пхп тоже дженерики одна из самых запрашиваемых фич. но нормальная поддержка породит проблемы с производительностью, т.к. проверки в рантайме будут.
     
  • 2.128, Анончек (?), 22:08, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ноют люди, которые выбрали не подходящий им язык.
     

  • 1.141, Балабол (?), 10:06, 14/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Хых. Недавно поймал себя на мысли, что на Java писать приятней и интересней, чем на >= php7

    Зачем делать из языка яву, если есть ява?!

     
     
  • 2.143, Варенье (?), 14:35, 14/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Зачем делать из языка яву, если есть ява?!

    Чтобы не иметь дел с Oracle

     

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



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

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