Is OOP really appropriate for PHP?

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
Hi folks,

I have a basic question. When I do object-oriented programming
using C++ or Java, all my objects reside in RAM. I do not have
to think about storing and retrieving them, because they are
in RAM and that space has been allocated for them and
the program is continually running, so neither program nor
objects are going to disappear.

It seems to me, having never done OOP in PHP, that this
arrangement would not exist in PHP, because program+objects
only exist when a page is being constructed. In the meantime,
where are the objects? You might say, "in my MySQL database",
and that is certainly a capable storage medium, however
it takes time to get them out, and to store them back into it.

So the question is, I think, appropriate. Since PHP has
(AFAIK) no object storage other than a database, is
OOP in PHP really appropriate?

If there is some other storage medium can you tell me what it is?

If there isn't another faster storage medium than a database,
why doesn't someone create one, to improve efficiency?


Re: Is OOP really appropriate for PHP?

Quoted text here. Click to load it

Well, web applications exist discontinuously, like as a film. But that  
does not change anything in the need for object orientation.

Quoted text here. Click to load it

In that meantime, the objects simply do not exist. The in-between  
pictures of a film do not exist either. So your objects must be  
retrieved and stored fast. But apart from that speed, the mechanisms are  
exactly the same as for local applications.

Quoted text here. Click to load it

It may be even more appropriate. Object orientation allows you to  
optimize the database communication strategy (greedy, lazy, or something  
in-between). This optimization helps you with every request, and not  
only upon the startup of your application. If fact, your application is  
restarted at every server request.

Quoted text here. Click to load it

You can store objects or object data in a session. This is the most  
straightforward way to make your application seem to be running  

Best regards

Re: Is OOP really appropriate for PHP?

Quoted text here. Click to load it
I am a bit confused here. In PHP, the objects are created and stored
in the Server's RAM as the script runs (when the webpage is
constructed), and as the script finishes execution, the objects are
wiped from the memory (which is a really quick process).

Quoted text here. Click to load it

Kailash Nadh |

Re: Is OOP really appropriate for PHP?

Viator wrote:
Quoted text here. Click to load it

Your problem is web programming requires a different design.

Web pages are transactional in nature.  That is, the browser makes a  
request, the page starts, processes the request and terminates (one  
transaction).  When the user does something to create another request,  
the process repeats.

Most C/C++ programs are not like this - they start and keep going across  
multiple requests.

But this does not affect OO design and usage.  It is still very much  
appropriate for transactional programming.  You don't have to save the  
objects to make them useful.

Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.

Re: Is OOP really appropriate for PHP?

Quoted text here. Click to load it
As the other correspondents have pointed out - that is the case with
PHP as long as the current thread is being executed. It is also true
of Java and C++ when invoked as a new execution thread via CGI - most
commonly for Java complex applications are implemented via containers
where a significant part of the process continues after the request
thread is completed.

You shouldn't have to think too much about storing/retrieving data
with PHP - read up on sessions. This of course does not address the
class definition part of an object - you can manually reference the
definitions within your code but its a lot simpler to adopt a
consistent approach to where you keep these and use the autoload
functionality (loading of a definition of a class instantiated in the
session is deferred).

Quoted text here. Click to load it

Most Web based Java applications have a similar problem/overhead
because the session has to replicate across the nodes - IME this is
much more painful than PHP's session handling which is intrinsically
at the storage layer.

(I also have a pet peeve about ORM - I think its a bad idea)

Quoted text here. Click to load it

You don't have to use a database. By default sessions are stored on
the filesystem but you can put them anywhere you can access via PHP -
a database or shared memory are obvious candidates. The filesystem can
easily be in RAM if you like.

Why do you think it's not fast enough?


Re: Is OOP really appropriate for PHP?

Kimmo Laine wrote:
Quoted text here. Click to load it

Unless next_page.php generates PHP, the script with this include will
only get HTML.

Quoted text here. Click to load it


    if (isset($_GET['foo'])) {
      echo '<?php echo $_GET[\'foo\']; ?>';
    } else {
      echo '<?php echo \'Not available\'; ?>';

File not found: (R)esume, (R)etry, (R)erun, (R)eturn, (R)eboot

Site Timeline