Re: Assistance debugging php 5.x.x

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



1. Overengineering perhaps...
2. Reinventing the wheel? Probably, but I just like to know every single
"bit" of the wheel I use
3. I do get confused every now and then about PHP5 OO
4. References everywhere? Yes, the code was originally written for PHP4 I
have already started removing them, but seriously, does PHP5 cares about
passing an object reference by reference (it's useless and overhead, ok, but
does it matter?)
Because the code originates from PHP4, I don't have __constructor functions



On 11/23/05, Jochem Maas <jochem@xxxxxxxxxxxxx> wrote:
>
> eric van blokland wrote:
> > LOL @ Jochem
> >
> > Well I sure can't argue with that! (serious)
> >
> > But with or without comments, the code is broken or breaks
> > something. I've tracked down the weird bevahiour a little further. Now I
> > would sure like, if one of you has about 30 minutes time to look at my
> > problem with me, using VNC and Skype
> > If you got the spare time I would really appreciate it and as I've been
> > unable to create some actual reproduce code, the only thing that's left
> > is looking at the real thing. I'm still sure it's related to the way I
> > use references, wheter it is or isn't a bug in the compiler, it sure
> > would be nice to know this particular DON'T about references.
> >
> > Please let me know
>
> 1. it could be considered over-engineered
> 2. you seem to be reinventing the wheel (templating?)
> 3. you are lacking knowledge regarding php5 OO
> (for starters why are not you using __construct() for the ctors?)
> 4. YOU ARE USING REFERENCES ALL OVER THE PLACE!!! ;-)
>
> regarding no. 4, some examples:
>
> function fs_handle_object_properties(&$object)  {
>        //                           ^--- destroy it


I will

// why bother sticking the object in a 'serialize container'?
> // and where was the class defined in the example code???
> function fs_serialize(&$object) {
> //                     ^--- destroy it
>     $container=new fs_serialize_container();
>
>     $container->object=&$object;
> //                     ^--- destroy it
>     return serialize($container);
> }


The container is used so references within $object to $object will remain
intact, the class is missing from the example code, because the example
isn't going to serialize or unserialize anything

// what happens in this code when $name
> // is 'properties' or some other value that
> // is the name of pre-defined object attribute?
> function fs_handle_object_properties(&$object)  {
>        global $stdo;
>        $changed=false;
>        if(isset($object->properties) &&
> is_array($object->properties))         {
>                foreach($object->properties as $name=> $property)       {
>                        if(isset($property->changed) &&
> $property->changed==true){
>                                $object->changed=true;
>                                $changed=true;
>                                $object->$name=$property->value;
>                        }
>                }


This is most definitely a bug, or overlook issue, however, this is not the
cause of my problem

// if you are already using $_SESSION why complicate matters
> // by also storing duplicate stuff in $_COOKIE? _seems_ a
> // waste of time.
> function fs_process_properties()        {
>        if(isset($_COOKIE['fs_properties']))    {
>                $properties=explode(';',$_COOKIE['fs_properties']);



This function is used for external data input from the clients. I do not
post all forms, some are sent by cookie

function &fs_unserialize($string)       {
> //       ^-- destroy it


I will

class std_page  {
>
> /* ... */
>        function edit(&$structure)      {
> //                    ^-- ???
>                global $stdo;
>                foreach($this->properties as $key=>&$property)  {
> //                                                 ^-- $property is an
> object !!!!
>                        print $property->parse();
>                }
>
>
> and so on. getting rid of all the referencing of objects will most
> probably get rid of your problems - I'll pass on the argument
> as to whether it should work as it is.
>
> -------------------------------------


I will remove them

you might also want to read up on __call(), __set()
> and __get(). oh and there are the functions is_array(),
> is_object() and the keyword 'instanceof' which you
> might want to consider making more use of in order to
> check your variables.


But still I would like to ask you to take a look with me

>
> > On 11/23/05, *Jochem Maas* <jochem@xxxxxxxxxxxxx
> > <mailto:jochem@xxxxxxxxxxxxx>> wrote:
> >
> >     Eric,
> >
> >     everything you have written suggests to me that the problem is in
> >     your code
> >     (that may be being caused by changes to the engine, which have
> >     either removed
> >     an ability due to the fact that it was dangerous [e.g. reference
> >     issues], or
> >     abilities that have been changed because they were deemed wrong)
> >
> >     regardless of whether that is the case or not you are best off by
> >     assuming that
> >     the problem is in your code:
> >
> >     1. if its your code you have the power to fix it, which is a better
> >     situation
> >     to be in than have to rely on third parties to fix an underlying
> >     texchnology.
> >
> >     2. it avoids 'blaming' core developers until such time as you can
> >     _prove_ the
> >     engine has a bug.
> >
> >     eric van blokland wrote:
> >      > 1. That's what I've warned about from the beginning, that outside
> the
> >      > complete project environment the error probably wouldn't occur.
> >      > 2. I understand this completely, naturally. I would like to thank
> >     everybody
> >      > spending time in reading my posts, particulary you, Jay. But
> >     that's why I
> >      > would like to give you, or anyone else for that matter, an
> >     attended tour
> >      > through the project.
> >      > 3. I'm beeing pushed to present results, writting comments in my
> >     code would
> >      > take almost twice the time writing the code itself. And in most
> >     cases, it's
> >      > faster just to read my code instead of reading the comment. And
> >     finally, you
> >
> >     the last 3 lines are bullshit on all counts (apart from the implied
> >     deadline
> >     pressure), do yourself a favor and starting commenting! :-)
> >
> >      > wouldn't be able to read my comments, as my comments would be in
> >     dutch.
> >
> >     I'd be happy to translate for you Jay ;-)
> >
> >     having said that there is no reason to write comments in dutch if
> your
> >     english is as good as it is, but comments in any language are always
> >     better than
> >     none. (assuming the comments actually have some baring on the actual
> >     code -
> >     i.e. comments like '// Bill Gates has lots of money' don't really
> >     help!)
> >
> >
>
>

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux