Comments (13)
A sample of the required change for soap, which was using the exact same pattern: c5d6f59 (and still is, for three more resources...)
from php-src.
I just pushed OCI8 3.2 to PECL. Give it a whirl. It is for PHP 8.1 only.
from php-src.
Excellent. I'll take a look when I'm back.
from php-src.
That's caused by 14f599e, so PECL/oci8 needs to be updated.
However, this bug tracker is about documentation issues, and this one clearly isn't. Not quite sure what to do, since PECL/oci8 doesn't have its own bug tracker.
Anyhow, @cjbj, are you planning to publish a new PECL/oci8 version which is compatible with PHP 8.1?
from php-src.
@cmb69 I was hoping to release a PECL OCI8 version that supported several PHP 8 versions, however @nikic's 902d64390e4 from https://wiki.php.net/rfc/deprecate_dynamic_properties has just borked OCI8 tests that use OCILob or OCICollection, which will delay things.
How do I pass #[AllowDynamicProperties]
from oci8.stub.php? It seems to be ignored. And is there a way to have the stub generator create version-dependent #ifdef code so that oci8_arginfo.h can be used with, e.g. 8.2 and 8.1?
from php-src.
Do OCILob and OCICollection use dynamic properties? If so, can't that be changed so they have declared properties or use read_property
/write_property
handlers. If that's not possible, I think that you need to add ZEND_ACC_ALLOW_DYNAMIC_PROPERTIES
to the ce_flags
. I don't know whether #[AllowDynamicProperties]
will be supported for the stubs.
from php-src.
From a quick look at the code, OCILob
only has a $descriptor
property, which can be declared. Though in this particular case, $descriptor
probably shouldn't be exposed as a property at all -- it looks like a purely internal resource that the user can't interact with. Normally, we'd store something like this in a custom zend_object extension rather than an opaque resource. (Would also help with the migration away from resources.)
Though in any case, I think it's a bit early to think about an 8.2 compatible extension release, given how 8.2 is still a year away.
from php-src.
Thanks for jumping in. I need to do a PECL release for 8.1, and I wanted to add the newest performance optimization feature which landed in 8.2.
The class code is all very old (pre dating me) and I haven't reviewed it for a long time. I don't know the answers to @cmb69's questions. Are the ce_flags controls via stubs?
@nikic can you expand on what 'which can be declared' means?
Thanks !
PS I'm out for a few days.
from php-src.
Instead of calling add_property_resource()
, you'd call zend_declare_property_ex()
, but as Nikita said, this property would better be avoided in favor of a custom zend_object extension (e.g. like https://github.com/php/php-src/blob/php-8.1.0/ext/gd/gd.c#L162-L165).
The ce_flags
are a member of zend_class_entry
; I don't think you can mark a class to allow dynamic properties via the stubs (yet).
from php-src.
OCI8 3.2 uses OCI_ATTR_LOBPREFETCH_LENGTH
and OCI_ATTR_LOBPREFETCH_SIZE
which are apparently not defined in instaclient 10.2; should I disable 10.2 builds for Windows?
from php-src.
@cmb69 I should have made the build cleaner but, yes, it's time to move forward and stop building with ancient Oracle Client libraries. Thanks for identifying this. Builds with 11.2+ should work.
from php-src.
Yes, 11.2+ builds succeed. I've updated rmtools and the PECL build machine, and triggered new builds. Thanks for the swift reply! :)
from php-src.
I'll release a OCI8 3.2.1 version which removes support for linking with Oracle Client 10. I don't have Windows so won't touch the config.w32 file.
from php-src.
Related Issues (20)
- Applying zero offset to null pointer in Zend/zend_opcode.c HOT 4
- mbstring cannot be built on Windows (commit f7e7370)
- JSON Error Message: Malformed UTF-8 characters, possibly incorrectly encoded HOT 12
- [spam]
- getAttribute('xmlns') returns NULL when using the new DOM API HOT 4
- Backward incompatibility on date function 8.1+ HOT 6
- Using NumberFormatter::DECIMAL_ALWAYS_SHOWN adds the currency symbol to format() method output HOT 1
- Improve the error message of duplicated class declaration
- sqlite PDO::quote silently corrupts strings with null bytes HOT 11
- Add "abstract constant" support
- PDO PostreSQL - parser is broken for `'...\'` HOT 15
- Issue with ob handler context and execution in PHP HOT 5
- Anonymous classes with dynamic parent class HOT 7
- Build failed at mbstring_arginfo.h on Windows(Visual C++) with --enable-mbregex
- Incorrect validation of #[\Attribute]’s first parameter HOT 2
- better error message for when upload_max_filesize is exceeded HOT 1
- DateInterval cannot parse decimal fraction in ISO duration string
- Fuzzer readme still mentions obsolete --enable-json flag
- Maintain a docker tag for nightly master build HOT 7
- Heap Buffer Overflow in sqlite extension HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from php-src.