Permalink
Browse files

Add MySQL encryption functions MD5, SHA1 and SHA2.

  • Loading branch information...
1 parent 0ccb57a commit 2d620f919388911f1721e309e397605d0f8d7bff @gallien gallien committed Jun 17, 2011
@@ -0,0 +1,56 @@
+<?php
+
+/*
+ * DoctrineExtensions Mysql Function Pack
+ *
+ * LICENSE
+ *
+ * This source file is subject to the new BSD license that is bundled
+ * with this package in the file LICENSE.txt.
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to kontakt@beberlei.de so I can send you a copy immediately.
+ */
+
+namespace DoctrineExtensions\Query\Mysql;
+
+use Doctrine\ORM\Query\Lexer;
+use Doctrine\ORM\Query\AST\Functions\FunctionNode;
+
+/**
+ * "MD5" "(" StringPrimary ")"
+ *
+ * @category DoctrineExtensions
+ * @package DoctrineExtensions\Query\Mysql
+ * @author Andreas Gallien <gallien@seleos.de>
+ * @license New BSD License
+ */
+class Md5 extends FunctionNode
+{
+ public $stringPrimary;
+
+ /**
+ * @override
+ */
+ public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
+ {
+ return 'MD5(' .
+ $sqlWalker->walkStringPrimary($this->stringPrimary) .
+ ')';
+ }
+
+ /**
+ * @override
+ */
+ public function parse(\Doctrine\ORM\Query\Parser $parser)
+ {
+ $lexer = $parser->getLexer();
+
+ $parser->match(Lexer::T_IDENTIFIER);
+ $parser->match(Lexer::T_OPEN_PARENTHESIS);
+
+ $this->stringPrimary = $parser->StringPrimary();
+
+ $parser->match(Lexer::T_CLOSE_PARENTHESIS);
+ }
+}
@@ -0,0 +1,56 @@
+<?php
+
+/*
+ * DoctrineExtensions Mysql Function Pack
+ *
+ * LICENSE
+ *
+ * This source file is subject to the new BSD license that is bundled
+ * with this package in the file LICENSE.txt.
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to kontakt@beberlei.de so I can send you a copy immediately.
+ */
+
+namespace DoctrineExtensions\Query\Mysql;
+
+use Doctrine\ORM\Query\Lexer;
+use Doctrine\ORM\Query\AST\Functions\FunctionNode;
+
+/**
+ * "SHA1" "(" StringPrimary ")"
+ *
+ * @category DoctrineExtensions
+ * @package DoctrineExtensions\Query\Mysql
+ * @author Andreas Gallien <gallien@seleos.de>
+ * @license New BSD License
+ */
+class Sha1 extends FunctionNode
+{
+ public $stringPrimary;
+
+ /**
+ * @override
+ */
+ public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
+ {
+ return 'SHA1(' .
+ $sqlWalker->walkStringPrimary($this->stringPrimary) .
+ ')';
+ }
+
+ /**
+ * @override
+ */
+ public function parse(\Doctrine\ORM\Query\Parser $parser)
+ {
+ $lexer = $parser->getLexer();
+
+ $parser->match(Lexer::T_IDENTIFIER);
+ $parser->match(Lexer::T_OPEN_PARENTHESIS);
+
+ $this->stringPrimary = $parser->StringPrimary();
+
+ $parser->match(Lexer::T_CLOSE_PARENTHESIS);
+ }
+}
@@ -0,0 +1,56 @@
+<?php
+
+/*
+ * DoctrineExtensions Mysql Function Pack
+ *
+ * LICENSE
+ *
+ * This source file is subject to the new BSD license that is bundled
+ * with this package in the file LICENSE.txt.
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to kontakt@beberlei.de so I can send you a copy immediately.
+ */
+
+namespace DoctrineExtensions\Query\Mysql;
+
+use Doctrine\ORM\Query\Lexer;
+use Doctrine\ORM\Query\AST\Functions\FunctionNode;
+
+/**
+ * "SHA2" "(" StringPrimary ")"
+ *
+ * @category DoctrineExtensions
+ * @package DoctrineExtensions\Query\Mysql
+ * @author Andreas Gallien <gallien@seleos.de>
+ * @license New BSD License
+ */
+class Sha2 extends FunctionNode
+{
+ public $stringPrimary;
+
+ /**
+ * @override
+ */
+ public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
+ {
+ return 'SHA2(' .
+ $sqlWalker->walkStringPrimary($this->stringPrimary) .
+ ')';
+ }
+
+ /**
+ * @override
+ */
+ public function parse(\Doctrine\ORM\Query\Parser $parser)
+ {
+ $lexer = $parser->getLexer();
+
+ $parser->match(Lexer::T_IDENTIFIER);
+ $parser->match(Lexer::T_OPEN_PARENTHESIS);
+
+ $this->stringPrimary = $parser->StringPrimary();
+
+ $parser->match(Lexer::T_CLOSE_PARENTHESIS);
+ }
+}

0 comments on commit 2d620f9

Please sign in to comment.