@Kevin
i dont undestando what you are saying.
VirtuosiMedia was just doing to php what he does in mootools.
and at the time just the setOptions function.
w/e.
On Oct 14, 11:10 pm, Kevin <[EMAIL PROTECTED]> wrote:
> Wonderful! But I really don't think it's a good idea to mess up the PHP code
> with Javascript codes or variables. We must modify the php code when we do a
> Javascript framework upgrade.
>
> My solution is that, generates the Javascript variables (only variables)
> using server side scripting language, and then use it in the Javascript
> code. So, in Javascript files, we can see the pure Javascript code. It makes
> debugging and upgrading much easier.
> P.S. Joomla is on almost the same way to solve the problem.
>
> Greetings,
> Kevin
> On Wed, Oct 15, 2008 at 2:42 AM, VirtuosiMedia <[EMAIL PROTECTED]>wrote:
>
>
>
> > One of the things I've really liked about writing MooTools classes is
> > the syntax. After spending about a solid month working exclusively on
> > MooTools classes, when I went back to some PHP, I found I really
> > missed the options syntax for the class constructor, so I decided to
> > try to implement Moo-style options for PHP classes. This isn't really
> > anything special, but since it's inspired by MooTools, I thought I
> > would share because someone might find it interesting.
>
> > The options class:
>
> > <?php
> > class VMClass {
>
> > // @var array $options - The generic options array for which
> > extending classes should set default values
> > public $options = array();
>
> > /**
> > * Description: The setOptions method should be called in the
> > constructor of an extending class
> > * @param array $options - The options array resets any default
> > options present in the class
> > * @return - $this
> > */
> > protected function setOptions($options) {
> > if (is_array($options)){
> > foreach ($options as $key => $value){
> > $this->options[$key] = $value;
> > }
> > $this->options =
> > $this->arrayToObject($this->options);
> > }
> > return $this;
> > }
>
> > /**
> > * Description: Recursively returns an array as an object, for easier
> > syntax
> > * Credit: Mithras @
> >http://us2.php.net/manual/en/language.types.object.php#85237
> > * @param array $array - The array to return as an object
> > * @return - The object converted from the array
> > */
> > public function arrayToObject(array $array){
> > foreach ($array as $key => $value){
> > if (is_array($value)) $array[$key] = $this-
> > >arrayToObject($value);
> > }
> > return (object) $array;
> > }
> > }
> > ?>
>
> > A silly test class that extends the above class:
>
> > <?php
> > class TestClass extends VMClass {
>
> > public $options = array(
> > 'name' => array('first'=>'Fred',
>
> > 'last'=>'Flintstone'),
> > 'question' =>'How are you?',
> > 'useQuestion' => TRUE
> > );
>
> > function __construct($options = null){
> > $this->setOptions($options);
> > }
>
> > public function greet($salutation){
> > echo $salutation.', '.$this->options->name->first.'
> > '.$this->options-
> > >name->last.'. ';
> > if ($this->options->useQuestion) echo
> > $this->options->question;
> > }
> > }
> > ?>
>
> > And finally, a simple test case of our test class:
>
> > <?php
> > include('vmclass.php');
> > include('testclass.php');
> > $options = array('question'=>'Que pasa?', 'useQuestion'=>TRUE);
> > $foo = new TestClass($options);
> > $foo->greet('Howdy');
> > $foo->options->name->first = 'Wilma';
> > $foo->options->useQuestion = FALSE;
> > $foo->greet('Bonjour');
> > ?>