[Phpmyadmin-devel] SQLValidator

Madhura Jayaratne madhura.cj at gmail.com
Wed Jul 3 16:56:20 CEST 2013


On Wed, Jul 3, 2013 at 1:59 PM, Ayush Chaudhary <ayushchd at gmail.com> wrote:

> Hi,
>
> On Wednesday, 3 July 2013 at 2:08 PM, Dieter Adriaenssens wrote:
>
> 2013/7/3 Ayush Chaudhary <ayushchd at gmail.com>:
>
> Hi,
>
> Is there a reason why validation.lib.php is not a class with public static
> method? Is it okay to convert it to a class with all methods' access
> specifier as public static?
>
>
> Did you mean the PMA_SQLValidator class in
> libraries/sqlvalidator.class.php? I didn't find a validation.lib.php,
> or something similar, in the PMA codebase, that contains a class.
> (libraries/config/validate.lib.php doesn't contain a class)
>
> Sorry for not being clear. I was referring to the library
> libraries/config/validate.lib.php. I am currently writing tests for
> libraries/config/FormDisplay.class.php, and there are numerous calls to
> functions from validate.lib.php which cannot be mocked because they are not
> contained in a class. Also, the same issue holds for
> libraries/config/FormDisplay.tpl.php
>

I am in favor of putting these functions into a class as static methods.

>
> Assuming you mean PMA_SQLValidator, this is not a static class, ie. it
> has to be instanciated (= turned into an object), so it can't have
> static methods. [1]
> To use (or test) this class, you have to create an instance and call
> the methods from that instance, fe.
>
> $validator = new PMA_SQLValidator();
>
> $validator->start();
>
> (see libraries/sqlvalidator.lib.php for an example on how to
> instanciate and use the PMA_SQLValidator class)
>
> BTW : Testing a class instance can sometimes be tricky, especially if
> it communicates with, or uses another class. If this is the case, you
> will have to use Mock objects [0] and Stubs to simulate the expected
> behaviour of the other class.
>
> I wanted to use mocking and just set expectations with parameters, but
> that won't be possible unless these libraries are converted to classes
>

Here [1] is a good blog post from the author of PHPUnit about mocking
static methods.

[1]
http://sebastian-bergmann.de/archives/883-Stubbing-and-Mocking-Static-Methods.html

-- 
Thanks and Regards,

Madhura Jayaratne
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.phpmyadmin.net/pipermail/developers/attachments/20130703/e6cc9a74/attachment.html>


More information about the Developers mailing list