Click to See Complete Forum and Search --> : HOOP (Human Object Oriented Programming) New way to code!


jimson
01-21-2003, 10:32 AM
<pre>
&lt;?php
/*
HOOP (Human Object Oriented Programming)
========================================
The HOOP practice is new, very new, but i personally
think HOOP as a new way of modelling the world into
php or whatever programming language or some kind of
new way to do object oriented programming.

HOOP maximize functions within functions to act like
an object.

the best way of HOOP is HOOP will act like the
Globals variable for every instances like human ~
what we remember in our brain.

to debug, just type print_r(HOOP('DBG')); and we can get all
the instances information, this may probably what you can't get
in traditionaly OOP.

see the code and try,
view the example below, to use, just copy function HOOP
and deploy your function like Fruit function!

HOOP may make your code lengthy a bit but you may decide
worth it or not because to make your traditional class & object
secure, they must also reside in the function so that they don't
appear global which can be accessed using $GLOBALS;

HOOP will be more secure if function name can be retrieved
using func_name() inside a function. thus we can build a list like which
function can access to HOOP function and prevent other malicious
function from accessing HOOP function.

any suggesstion please e-mail me at jimsonchang@yahoo.com

some of the abbrev. i use
A = Add
G = Get
GA = Get All
D = Delete
DA = Delete All
DBG = Debug

FD = Function define // prevent function redefine error
*/
function HOOP($param=null){
&nbsp;
&nbsp; static $data;
&nbsp;
&nbsp; switch($param){
&nbsp;&nbsp;&nbsp;case 'A':
&nbsp;&nbsp;&nbsp;&nbsp; if(func_num_args() == 4){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$lParam&nbsp; =&nbsp; func_get_args();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array_shift($lParam);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data[$lParam[0]][$lParam[1]][$lParam[2][0]] = $lParam[2][1];
&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp; break;
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;case 'G':
&nbsp;&nbsp;&nbsp;&nbsp; if(func_num_args() == 4){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$lParam&nbsp; =&nbsp; func_get_args();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array_shift($lParam);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(isset($data[$lParam[0]][$lParam[1]][$lParam[2]])){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $data[$lParam[0]][$lParam[1]][$lParam[2]];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp; break;
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;case 'GA':
&nbsp;&nbsp;&nbsp;&nbsp; if(func_num_args() == 3){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$lParam&nbsp; =&nbsp; func_get_args();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array_shift($lParam);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(isset($data[$lParam[0]][$lParam[1]])){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $data[$lParam[0]][$lParam[1]];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp; return $data;
&nbsp;&nbsp;&nbsp;&nbsp; break;
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;case 'D':
&nbsp;&nbsp;&nbsp;&nbsp; if(func_num_args() == 4){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$lParam&nbsp; =&nbsp; func_get_args();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array_shift($lParam);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unset($data[$lParam[0]][$lParam[1]][$lParam[2]]);
&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp; break;
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;case 'DA':
&nbsp;&nbsp;&nbsp;&nbsp; if(func_num_args() == 3){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$lParam&nbsp; =&nbsp; func_get_args();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array_shift($lParam);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unset($data[$lParam[0]][$lParam[1]]);
&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp; break;
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;case 'DBG':
&nbsp;&nbsp;&nbsp;&nbsp; return $data;
&nbsp;&nbsp;&nbsp;&nbsp; break;
&nbsp; }
}

function Fruit($param=null){
&nbsp;
&nbsp; static $funcDefine;
&nbsp; static $funcInst;
&nbsp;
&nbsp; $funcName&nbsp; =&nbsp; 'Fruit';

&nbsp; switch($param){
&nbsp;&nbsp;&nbsp;case 'A':
&nbsp;&nbsp;&nbsp;&nbsp; if(func_num_args() == 3){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$lParam&nbsp; =&nbsp; func_get_args();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array_shift($lParam);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HOOP('A', $funcName, $funcInst, $lParam);
&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp; break;
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;case 'G':
&nbsp;&nbsp;&nbsp;&nbsp; if(func_num_args() == 2){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$lParam&nbsp; =&nbsp; func_get_args();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return HOOP('G', $funcName, $funcInst, $lParam[1]);
&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp; break;
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;case 'GA':
&nbsp;&nbsp;&nbsp;&nbsp; return HOOP('GA', $funcName, $funcInst);
&nbsp;&nbsp;&nbsp;&nbsp; break;
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;case 'D':
&nbsp;&nbsp;&nbsp;&nbsp; if(func_num_args() == 2){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$lParam&nbsp; =&nbsp; func_get_args();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HOOP('D', $funcName, $funcInst, $lParam[1]);
&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp; break;
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;case 'DA':
&nbsp;&nbsp;&nbsp;&nbsp; if(func_num_args() == 1) HOOP('DA', $funcName, $funcInst);
&nbsp;&nbsp;&nbsp;&nbsp; break;
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;case 'FD':
&nbsp;&nbsp;&nbsp;&nbsp; $funcDefine = true;
&nbsp;&nbsp;&nbsp;&nbsp; break;
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;default:
&nbsp;&nbsp;&nbsp;&nbsp; func_num_args()==1 ? $funcInst = $param : $funcInst;
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp; if(!$funcDefine){

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function FruitProp($propName, $propVal){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fruit('A', $propName, $propVal);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function FruitColor(){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return Fruit('G', 'color');
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function FruitAll(){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return Fruit('GA');
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$funcName('FD');
&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp; }
}
// new instance name = apple
Fruit('apple');
&nbsp; $price['big'] = 5;
&nbsp; $price['small'] = 2;
&nbsp;
&nbsp; // adding properties to HOOP brain
&nbsp; Fruit('A', 'weight', '30 grams');
&nbsp; FruitProp('color', 'red');
&nbsp; FruitProp('quality', 'A1');
&nbsp; FruitProp('price', $price);

&nbsp; Fruit('D', 'quality');
&nbsp; Fruit('DA');
&nbsp; Fruit('DA');
&nbsp;
// new instance name = orange
Fruit('orange');
&nbsp; FruitProp('color', 'orange');

// set object Fruit to remember instance apple back.
Fruit('apple');
&nbsp; $apple = FruitAll(); // or $apple = Fruit('GA');

echo 'Debug<br>';
print_r(HOOP('DBG'));

?&gt;
</pre>

piersk
01-21-2003, 10:36 AM
Huh??

MrRosary
01-21-2003, 12:01 PM
<<scratches head>>

$SuperString
01-21-2003, 12:48 PM
After looking to the sky for many moments he decides to reply......
so were is the punch line ???

jimson
01-21-2003, 03:36 PM
copy the code and paste it in the editor
and set tab to 3

Rayn
01-23-2003, 03:43 PM
*blinks.... eats spamwhich*

voidstate
01-30-2003, 12:00 PM
...nope. Still means nothing to me.

Can I have another clue please

mpirvul
02-06-2003, 01:34 AM
:confused: .....*long pause* naw, just new way to hype. Oh my, whomever came up with this must have been a VB ASP programmer.. lol

piersk
02-06-2003, 05:49 AM
Ok, Ive run it. What was I suppposed to get?

voidstate
02-06-2003, 05:55 AM
Is this the most pointless and lacklustre thread ever, I wonder....

*wanders off*

LukeO
02-06-2003, 05:40 PM
Lol, didnt they use HOOP (Human Object Oriented Programming) in an old dos game? What was it now.... zzt?

Luke