Re: Assistance debugging php 5.x.x

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

 



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


// 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);
}


// 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;				
			}
		}


// 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']);
	

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


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.

-------------------------------------

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.


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!)



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[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