Re: Re: Re: [PHP-DEV] OCI extension help offer
| From: | predator79 at web dot de | Date: | Wed, 16 Oct 2002 08:26:46 +0000 |
| Subject: | Re: Re: Re: [PHP-DEV] OCI extension help offer | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-89554@lists.php.net to get a copy of this message | ||
Oh, and just to be clear about it: I am absolutely positive on a completely new (perhaps unified)
extension for PHP 5, and would gladly participate. I Just don't think that changing anything in
the current situation would be useful.
Abdul
<predator79@web.de> schrieb am 16.10.02 10:22:18:
> I'm sure glad this in the headlines again ;-)
>
> As Thies knows, I already proposed another important change, which is supporting multiple
> character sets. This is very important on shared web platforms, and I have experienced the trouble
> that arises from the way the oci ext treats the session environment (-> as a global one).
> Oracle 9i offers some functions which help out from this dilemma, and I have changed the
> existing oci ext to support them. The most important change (from a user's viewpoint) is that
> OCILogon has an optional forth parameter, the character set, so an connection looks like this:
>
> OCILogon($user,$pass,$tnsname,"WE8ISO8859P1");
>
> Ok, I know this isn't ideal, since OCILogon already has an optional parameter, but maybe
> people can set $tnsname to false if they want to use the default one (ORACLE_SID) and use a specific
> character set? Anyway, my code works, and is already being used in a relativly big production
> environment.
>
> From a developers viewpoint what I mainly did was follow Thies' proposal and put the
> environment struct in the session struct, and use the global env only for init work. Then I decode
> the character set parameter (if it is omitted, the NLS_LANG setting or Oracle default will be used)
> and use it in open_session. Voila, Oracle takes care of the rest.
>
> Works better than I thought :-). The only thing I need to do now is to add a compile-time
> decision on whether Ora9i libraries are found or not, and then to make this functionality available
> depending on the version. If anyone's interested I can send a patch.. As for the proposed name
> changes, IMHO it doesn't make that much of a sense, 1. since existing apps would have to be
> rewritten, and 2. there is absolutely zero effectiveness in merging the ora_ and OCI extensions,
> which differ greatly, into one. I think that would result in a mess or a big rewrite..
>
> Thx, Cu
> Abdul
>
> "Sebastian Nohn" <sebastian@nohn.net> writes:
>
> >> 5. Functions are called OCI .* I do well know what it refers to, but
> >> this is only because I learned the original oci.h API. Wouldn't itbe more
> >> standard for PHP to use similar naming as mySQL, pgSQL, MSSQL extensions
> >> ect? OCI make it a bit confusing, I always heard from my co-workers.
> >> Besides, this can also be a great input for newer Oracle's updates.
> >
> > This is mainly because there are Oracle-funktions and OCI-functions (there
> > is a difference), and i like the OCI-thing very much, it's much easier and
> > faster to type than oracle ;)
>
> Well, yes, OCI* functions look pretty geek, indeed, they are very similar
> (if not identic, in some its parts) to the actual OCI API.
>
> But, this naming convention is way not optimal, is limited
> functionality-wise and, last but not least, it is far not PHP's standard
> naming convention for the database extensions.
>
> In fact, if you'll look into PHP standards specifications (look in CVS:
> ¬ú4
2ôäMÒ†
> ÷ahttp://cvs.php.net/co.php/php4/CODING_STANDARDS?login=2&r=1.23) you are
> encoraged using a certain style for calling your functions, especially those
> of databases since these mostly do the same things.
>
> What I meant was, while to access a mySQL database you use mysql_connect(),
> for PostgreSQL pg_connect() and for Sybase sybase_connect() question stays:
> why function to connect to Oracle be called OCILogon()? Wouldn't it be
> better called oracle_connect()? that is how som other programming languages
> call it.
>
> It is not an exaggeration to say that, some programmers are actually making
> their own functions named this very way so they can easier interact with the
> Oracle database using their mySQL's (or whatever) habbits because OCI gets
> them confused. I kind of followed this question within the PHP-Oracle
> developers I met.
>
> For now, we have ora_* and OCI* functions. These are, as long as I
> understand, used for Oracle v6.* and Oracle v8 (the last one is also 90%
> compatible with v9). Yet, this shouldn't mean that there is no need for a
> standarized set of functions like oracle_* with mapped/intuitive
> functionalities like most of the DBs PHP that supports AND as compatible
> between Oracle versions as possible.
>
> Only this way, one could firmly admit that PHP fully supports Oracle
> database.
>
> Those are my ideas for the Oracle extension.
>
> At this point, some new questions arised in my head:
>
> 1. Is ora_* extension (ext/oracle) still maintained and ported
> compatibility-wise to the versions Oracle newer v6 or, for these are OCI8
> extensions? If so, then this should mean that ora_* functions are limited to
> version 6 only, if not deprecated at all. Am I correct, or missed the point?
> If I guessed, then what was the need for OCI8 extyension at all? Why ora_*
> could not be continued? I still haven't found it out.
>
> 2. What costs merging the two extensions (ora_* and OCI8) in one (oracle_*
> ?) that fully supports both 6*, 8* and 9* versions of Oracle and remains the
> only one to be used (as well as maintained, debugged) in the feature?
>
> 3. Still, related to question 2: Wouldn't it be safe enough, if not rather
> strategically clever to introuduce the oracle_* new functions as a new
> unified extension for Oracle in all its versions within PHP 5? Considering,
> that we are still at the planning stage of its development release?
>
> Hope to see someone to anser, commenting my thoughts on this. I am very much
> willing contributing to the PHP's Oracle support development.
>
>
> Maxim Maletsky
> maxim@php.net
>
> maxim@php.net schrieb am 15.10.02 17:32:17:
> > Thanks, Andi.
> >
> > yeah, I will wait for Thies to reply to me. We have sort of a started
> > this discussion with him before, so hopefully he will join into this one.
> >
> > My main concerns about OCI8 are the followings ones. Some of them are
> > related to the opverall idea of PHP-DB usage, some to the actual
> > performance and some to the missing functionalities. Some, might be
> > bogus or hardly accomplisheble. Here's what I think:
> >
> > 1. Datatype support. Right now, OCI8 only supports string and integer
> > datatypes binded via PLSQL. It would be great being able to use all the
> > remaining ones like booleans and dates, the other, incompatible onces
> > might need to be translated into PHP's way so they can be used within
> > PHP. Main problem of this is that, tipically, DBAs would grant the
> > access via PLSQL (stored procedures) to a various number of clients,
> > applications and langueages. Since, PHP does not funny support PLSQL,
> > interfacing Oracle via PHP not having to change stored procedures is
> > very limited.
> >
> > 2. XMLTYPE. This is new since Oracle 9.2. Will all the XML fever of
> > today, wouldn't it be possible to add some extra compatibility for it to
> > stipulate Oracle users using PHP? Always if this is dopable and logical.
> >
> > 3. Record type from Stored Procedures. (similar to #1) This is a VERY
> > BIG limitation. It is, probably, the 50% of the reason why PHP is not
> > used much with Oracle. Most programming languages can retrieve RECORD
> > type from stored procs. and use it as arrays of data (like plain SQL
> > records return). PHP fails on it, it only allows you to return the
> > cursor, and for that you need to modify (descresing so performance) the
> > stored procedures directly. At my work, (Italian Government) a datadase
> > had over 500 stored procedures used via other programming languages. To
> > migrate onto PHP, these all had to be changed and the backwards
> > compatibility to the previous programming language was completely lost.
> > It's a big issue.
> >
> > 4. OCI8 module naming conventions. How come OCI module is named OCI8
> > (specifically)? I think this makes it
> > hard for many to believe that it can fully be compatible with upcoming
> > releases of Oracle. Lots of businesses count a lot on application life-times
> > and, seeing '8' (or so would be with '9') makes management feel that
> > they
> > might not be able to upgrade their expensive Oracle licences till PHP comes
> > up with some newer number on the extension name. Which, in our case means
> > changing the whole extension and, I really don't think we would be doing
> > that too often. I personaly would see Oracle extension better with one only
> > generic name like OCI, ora, oracle or whatever but not version-labeled.
> > This could also help us keeping the OCI8 intact while adding newer
> > changes.
> >
> > 5. Functions are called OCI .* I do well know what it refers to, but
> > this is only because I learned the original oci.h API. Wouldn't itbe more
> > standard for PHP to use similar naming as mySQL, pgSQL, MSSQL extensions
> > ect? OCI make it a bit confusing, I always heard from my co-workers.
> > Besides, this can also be a great input for newer Oracle's updates.
> >
> > Here's one of the sample bugs that can be occuring while continuing the
> > current OCI8 extension with Oracle 9 and so on...
> >
> > http://bugs.php.net/bug.php?id=18758
> >
> > Hope, Thies and the rest of Dev Group can comment on my thought, and try
> > to think of a way improving PHP's Oracle support so we can start working
> > on it. Btw, I do not have a karma for php4, so keep that in mind :)
> >
> > --
> > Maxim Maletsky
> > maxim@php.net
> >
> > www.PHPBeginner.com // where PHP Begins
> >
> >
> >
> > Andi Gutmans <andi@zend.com> wrote... :
> >
> > > Hey,
> > >
> > > I'm sure that if there's work to be done people using Oracle will
> > > appreciate your contribution.
> > > Personally, I don't use Oracle so I suggest you talk to Thies who's the
> > > maintainer of the extension about the things you feel are missing. (It can
> > > also be public here on php-dev if you need feedback from other users).
> > >
> > > Andi
> > >
> > > At 01:51 PM 10/15/2002 +0200, Maxim Maletsky wrote:
> > >
> > > >Guys, a few month ago, I have been trying to offer some of my help for
> > > >developing Oracle 9i extension, or in anyway, to improve the existing
> > > >PHP/Oracle functionality.
> > > >
> > > >original posts are here:
> > >
> > > >>http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&threadm=aiquvp%2412e7%241%40FreeBSD.csie.NCTU.edu.tw&rnum=120&prev=/groups%3Fq%3DOCI8%2Bgroup:mailing.www.php-dev%26hl%3Den%26lr%3D%26ie%3DUTF-8%26scoring%3Dd%26start%3D110%26sa%3DN)
> > > >
> > > >
> > > >Having put onto the real-life test OCI8 extensions for the Italian
> > > >Government framework, I noticed many serious imperfections with the
> > > >current OCI8 extension.
> > > >
> > > >I personally think that Oracle is very important for PHP's future, and
> > > >that current extension is not very perfect and up to date.
> > > >
> > > >Please let me know if you are interested in my contributions regarding
> > > >it.
> > > >
> > > >--
> > > >Maxim Maletsky
> > > >maxim@php.net
> > > >
> > > >
> > > >--
> > > >PHP Development Mailing List
> > > ><http://www.php.net/>
> > > >To unsubscribe, visit: M°*øål„©ù
> > > >ëæ)¥vhttp://www.php.net/unsub.php
> > >
> > >
> > > --
> > > PHP Development Mailing List
> > > <http://www.php.net/>
> > > To unsubscribe, visit: http://www.php.net/unsub.php
> > >
> >
> >
> > --
> > PHP Development Mailing List <http://www.php.net/>
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
>
>
>
>
> --
> PHP Development Mailing List <http://www.php.net/>
> To unsubscribe, visit: http://www.php.net/unsub.php
>