можноНе уверен, что readonly можно

GitHub - lisachenko/immutable-object: :lock: Immutable object library for PHP
:lock: Immutable object library for PHP. Contribute to lisachenko/immutable-object development by creating an account on GitHub.

можноНе уверен, что readonly можно
напишу точнее:что, вообще, такое кеширование stream wrapper-ов? stream wrapper - это ж просто класс
можно
![]()
GitHub - lisachenko/immutable-object: :lock: Immutable object library for PHP
:lock: Immutable object library for PHP. Contribute to lisachenko/immutable-object development by creating an account on GitHub.github.com
Ух, блин. Это сильно повезло, что коллбэк естьWe can not hook into default object creation process without writing a C extension, but we have an access to the zend_class_entry->create_object callback. We can replace it with our own implementation that could allocate our custom object handlers list for this class and save a pointer to it in memory, providing API to modify object handlers in runtime, as they will point to one single place.
We will override low-level write_property handler to prevent changes of properties for every instance of class. But we should preserve original logic in order to allow initialization in class constructor, otherwise properties will be immutable from the beginning. Also we should throw an exception for attempts to unset property in unset_property hook. And we don't want to allow getting a reference to properties to prevent indirect modification like $obj->field++ or $byRef = &$obj->field; $byRef++;.
так я надеялся что что-то подобное и для опкод кеша можно сделать. Но судя по всему не судьбаУх, блин. Это сильно повезло, что коллбэк есть![]()
чтобы евал не делать и на диск в рантайме не писать. у него там говногенерация говнокода в говноcms. нам с тобой такое не понять, у cms-ников свой мир с шаред хостингами с аплоадом кода по ftp на php 5.3.прикольно!
а зачем тебе читать php-файлы через stream wrapper?
Какой нахрен деплой по кнопке, какой внутренний сервер? Бекап есть в лучшем случае у половины. У большинства все еще полное не понимание какой бардак в 90% случаев основной массы мелких и средних сайтов, даже когда сайт приносит основной доход для кучи народа. И все советуют будто бы я этот мрак весь писал.Например, сделать админку на внутреннем дев сервере, а потом все это по кнопке брать, собирать в пакет и хреначить на прод в RO. Формально задача выполнена. И даже можно премию попросить за систему отката изменений.
Как сказал выше - очень интересный вариант. О таком извращении не думалНу если свой дедик, я тебе дал, гхм, решение, я, конечно, не проверял, но судя по сорцам, на 99% уверен что сработает. Это конечно суперадовый костыль, но если исключить патчи на пхп, единственный вариант.
Так может писать только тот кто имеет очень небольшой опыт общения с владельцами или руководством мелкого и среднего бизнеса, не связанного с IT. У них всегда есть свой "проверенный" тыжпрограммист-специалист. И если он почему-то упрется (по любым причинам), доказать будет нереально, т.к. любой аутсорс - это люди со стороны и к ним всегда меньше доверия. И может доходить до абсурдного. Но как я писал не раз: фриланс он такой - бессмысленный и беспощадныйБольшинство "старожилов", мне кажется, умеют разговаривать хоть с админами, хоть с "приближенными", донося свою мысль.
у меня как раз exUSSR и Европа. Тыжпрограммист - это да рунет (и не зависимо от размера фирмы). А в Европе вообще разброс и шатание, уровень неадеквата колеблется от значительно хуже рунета, до почти уровень Штатов. Уровень кода и всего что с ним связано в Европе в среднем по больнице в разы хуже чем в рунете. Но это мелкий и средний бизнес.Хотя я по US рынку сужу, да и фрилансом я бы это называть не стал. А ру-фриланс я в гробу вертел. И, кстати, пассивно-агрессивный тыжпрограммист это в основном в exUSSR распространенное явление.