Autor Zpráva
iiic
Profil
Ahoj, zkouším si nové PHP 7 a narazil jsem na problém s použitím některých knihoven, které mají konstruktory psány 'postaru' kdy je jméno konstruktoru stejné jako jméno třídy.

v takovém případě php7 oznámí třeba 'Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Min_SQL has a deprecated constructor in C:\server\www\tools\adminer\adminer.php on line 205'

a je tam toho plno a je to ve více knihovnách, takže se mi moc nechce to všude opravovat přepisováním.

Říkal jsem si, že by tohle oznámení mělo jít vypnout na úrovni error reportingu v php, ale nějak mi to ( error_reporting(0); ) nefunguje.

Nemáte někdo se sedmičkou nějakou zkušenost? nevíte, jak se tohoto zbavit ?


Zrovna u Admineru už se tím někdo zabýval a všechno opravil: https://github.com/vrana/adminer/pull/135 ale obecně by mě to stejně zajímalo, pokud někdo víte, budu moc rád.
Keeehi
Profil
iiic:
takže se mi moc nechce
Jenže to je správné řešení.

Pokud ti nefunguje nastavování error reportingu za běhu tak to nastav php.ini. Tam už by to mělo zabrat určitě.
Kubo2
Profil
iiic:
Z môjho personálneho postoja to vidím tak, že PHP je a zostane slabo typovaný jazyk a preto tzv. php4-style konštruktory mali byť v sedmičke už dávno odstránené (a v päťke označené za zastaralé). V PHP 8 bude táto „rozširujúca funkcionalita“ finálne odstránená.

Viac informácií k procesu odstraňovania PHP 4 konštruktorov: https://wiki.php.net/rfc/remove_php4_constructors

takže se mi moc nechce to všude opravovat přepisováním.
Použi knižnicu na statickú analýzu PHP kódu.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: