Skip to content

Commit c7fbd45

Browse files
committed
Structure changes
- Rename ClassTemplate\ClassDeclare to ClassTemplate\ClassFile - Rename CodeGen\ClassDeclare to CodeGen\UserClass (which corresponds to UserFunction) - Move file related methods from UserClass to ClassFile - Move other components into CodeGen namespace - Update composer.json for CodeGen namespace
1 parent 94117a2 commit c7fbd45

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+218
-241
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ SYNOPSIS
77
-------------
88

99
```php
10-
$class1 = new ClassTemplate\ClassDeclare('Foo\\Bar22',array(
10+
$class1 = new ClassTemplate\ClassFile('Foo\\Bar22',array(
1111
'template' => 'Class.php.twig',
1212
'template_dirs' => array('src/ClassTemplate/Templates'),
1313
));

composer.json

+4-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"description": "Class template Utilities",
55
"version": "2.0.0",
66
"require": {
7-
"php": ">=5.3.0",
7+
"php": ">=5.4.0",
88
"twig/twig": "*"
99
},
1010
"require-dev": {
@@ -20,7 +20,8 @@
2020
],
2121
"autoload": {
2222
"psr-4": {
23-
"ClassTemplate\\": "src/ClassTemplate/"
23+
"ClassTemplate\\": "src/ClassTemplate/",
24+
"CodeGen\\": "src/CodeGen/"
2425
}
2526
}
26-
}
27+
}

phpunit.xml

+4-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@
1313
</php>
1414
<testsuites>
1515
<testsuite name="ClassTemplate">
16-
<directory suffix="Test.php">tests</directory>
16+
<directory suffix="Test.php">tests/ClassTemplate</directory>
17+
</testsuite>
18+
<testsuite name="CodeGen">
19+
<directory suffix="Test.php">tests/CodeGen</directory>
1720
</testsuite>
1821
</testsuites>
1922
</phpunit>

src/ClassTemplate/ClassFile.php

+97
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
<?php
2+
namespace ClassTemplate;
3+
use Exception;
4+
use ReflectionClass;
5+
use ReflectionObject;
6+
use CodeGen\UserClass;
7+
use CodeGen\Renderable;
8+
9+
class ClassFile extends UserClass
10+
{
11+
public $class;
12+
13+
public $extends;
14+
15+
public $interfaces = array();
16+
17+
public $uses = array();
18+
19+
public $methods = array();
20+
21+
public $consts = array();
22+
23+
public $properties = array();
24+
25+
public $staticVars = array();
26+
27+
/**
28+
* Registered trait
29+
*/
30+
public $traits = array();
31+
32+
public $templateFile;
33+
public $templateDirs;
34+
public $options = array();
35+
public $msgIds = array();
36+
37+
38+
public $usedClasses = array();
39+
40+
/**
41+
* constructor create a new class template object
42+
*
43+
* @param string $className
44+
* @param array $options
45+
*
46+
* a sample options:
47+
*
48+
* $t = new ClassTemplate('NewClassFoo',[
49+
* 'template_dirs' => [ path1, path2 ],
50+
* 'template' => 'Class.php.twig',
51+
* 'template_args' => [ ... predefined template arguments ],
52+
* 'twig' => [ 'cache' => false, ... ]
53+
* ])
54+
*
55+
*/
56+
public function __construct($className, array $options = array())
57+
{
58+
parent::__construct($className);
59+
$this->setOptions($options);
60+
}
61+
62+
public function setOptions(array $options)
63+
{
64+
$this->options = $options;
65+
}
66+
67+
public function setOption($key, $val) {
68+
$this->options[$key] = $val;
69+
}
70+
71+
public function render(array $args = array())
72+
{
73+
return "<?php\n" . parent::render($args);
74+
}
75+
76+
public function writeTo($file)
77+
{
78+
return file_put_contents($file, $this->render());
79+
}
80+
81+
public function load() {
82+
$tmpname = tempnam('/tmp', str_replace('\\','_',$this->class->getFullName()) );
83+
file_put_contents($tmpname, $this->render() );
84+
return require $tmpname;
85+
}
86+
87+
public function addMsgId($msgId)
88+
{
89+
$this->msgIds[] = $msgId;
90+
}
91+
92+
public function setMsgIds($msgIds)
93+
{
94+
$this->msgIds = $msgIds;
95+
}
96+
}
97+

src/ClassTemplate/MethodCall.php

-77
This file was deleted.

src/ClassTemplate/TemplateClassDeclare.php src/ClassTemplate/TemplateClassFile.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
use ReflectionClass;
55
use ReflectionObject;
66
use ClassTemplate\ClassTrait;
7-
use ClassTemplate\Renderable;
8-
use ClassTemplate\ClassDeclare;
7+
use CodeGen\Renderable;
8+
use ClassTemplate\ClassFile;
99

10-
class TemplateClassDeclare extends ClassDeclare implements Renderable
10+
class TemplateClassFile extends ClassFile implements Renderable
1111
{
1212
/**
1313
* @var TemplateView object.

src/ClassTemplate/Annotator.php src/CodeGen/Annotator.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
2-
namespace ClassTemplate;
3-
use ClassTemplate\Comment;
4-
use ClassTemplate\CommentBlock;
2+
namespace CodeGen;
3+
use CodeGen\Comment;
4+
use CodeGen\CommentBlock;
55

66
trait Annotator {
77
public $comment;

src/ClassTemplate/Argument.php src/CodeGen/Argument.php

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?php
2-
namespace ClassTemplate;
3-
use ClassTemplate\Renderable;
2+
namespace CodeGen;
3+
use CodeGen\Renderable;
4+
use CodeGen\VariableDeflator;
45

56
class Argument implements Renderable
67
{
@@ -16,7 +17,7 @@ public function __construct($name, $default = NULL) {
1617
public function render(array $args = array()) {
1718
$code = $this->name;
1819
if ($this->default) {
19-
$code .= var_export($this->default, true);
20+
$code .= ' = ' . VariableDeflator::deflate($this->default);
2021
}
2122
return $code;
2223
}

src/ClassTemplate/Block.php src/CodeGen/Block.php

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<?php
2-
namespace ClassTemplate;
3-
use ClassTemplate\Utils;
4-
use ClassTemplate\Renderable;
5-
use ClassTemplate\Indenter;
6-
use ClassTemplate\Exception\InvalidArgumentTypeException;
2+
namespace CodeGen;
3+
use CodeGen\Utils;
4+
use CodeGen\Renderable;
5+
use CodeGen\Indenter;
6+
use CodeGen\Exception\InvalidArgumentTypeException;
77
use ArrayAccess;
88
use IteratorAggregate;
99
use ArrayIterator;

src/ClassTemplate/BracketedBlock.php src/CodeGen/BracketedBlock.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
2-
namespace ClassTemplate;
3-
use ClassTemplate\Block;
4-
use ClassTemplate\Indenter;
2+
namespace CodeGen;
3+
use CodeGen\Block;
4+
use CodeGen\Indenter;
55

66
/**
77
* A BracketedBlock is a block that uses bracket to wrap the inner block.

src/ClassTemplate/ClassConst.php src/CodeGen/ClassConst.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?php
2-
namespace ClassTemplate;
3-
use ClassTemplate\Utils;
4-
use ClassTemplate\Renderable;
5-
use ClassTemplate\Indenter;
2+
namespace CodeGen;
3+
use CodeGen\Utils;
4+
use CodeGen\Renderable;
5+
use CodeGen\Indenter;
66

77
class ClassConst extends Statement implements Renderable
88
{

src/ClassTemplate/ClassMethod.php src/CodeGen/ClassMethod.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?php
2-
namespace ClassTemplate;
3-
use ClassTemplate\Utils;
4-
use ClassTemplate\Renderable;
5-
use ClassTemplate\Indenter;
2+
namespace CodeGen;
3+
use CodeGen\Utils;
4+
use CodeGen\Renderable;
5+
use CodeGen\Indenter;
66

77
class ClassMethod extends UserFunction implements Renderable
88
{

src/ClassTemplate/ClassName.php src/CodeGen/ClassName.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
2-
namespace ClassTemplate;
3-
use ClassTemplate\Renderable;
2+
namespace CodeGen;
3+
use CodeGen\Renderable;
44

55
class ClassName implements Renderable
66
{

src/ClassTemplate/ClassProperty.php src/CodeGen/ClassProperty.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
2-
namespace ClassTemplate;
3-
use ClassTemplate\Renderable;
2+
namespace CodeGen;
3+
use CodeGen\Renderable;
44

55
class ClassProperty extends Statement implements Renderable
66
{

src/ClassTemplate/ClassStaticVariable.php src/CodeGen/ClassStaticVariable.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
2-
namespace ClassTemplate;
3-
use ClassTemplate\Renderable;
2+
namespace CodeGen;
3+
use CodeGen\Renderable;
44

55
class ClassStaticVariable extends ClassProperty implements Renderable
66
{

src/ClassTemplate/ClassTrait.php src/CodeGen/ClassTrait.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
2-
namespace ClassTemplate;
3-
use ClassTemplate\Renderable;
4-
use ClassTemplate\Statement;
2+
namespace CodeGen;
3+
use CodeGen\Renderable;
4+
use CodeGen\Statement;
55

66
/**
77
* use HelloWorld { sayHello as private myPrivateHello; }

src/ClassTemplate/Comment.php src/CodeGen/Comment.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<?php
2-
namespace ClassTemplate;
3-
use ClassTemplate\Utils;
4-
use ClassTemplate\Renderable;
2+
namespace CodeGen;
3+
use CodeGen\Utils;
4+
use CodeGen\Renderable;
55
use Exception;
6-
use ClassTemplate\Exception\InvalidArgumentTypeException;
6+
use CodeGen\Exception\InvalidArgumentTypeException;
77

88
class Comment extends Line implements Renderable
99
{

src/ClassTemplate/CommentBlock.php src/CodeGen/CommentBlock.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
2-
namespace ClassTemplate;
3-
use ClassTemplate\Utils;
4-
use ClassTemplate\Renderable;
2+
namespace CodeGen;
3+
use CodeGen\Utils;
4+
use CodeGen\Renderable;
55
use Exception;
66

77
class CommentBlock extends Block implements Renderable

src/ClassTemplate/Exception/InvalidArgumentTypeException.php src/CodeGen/Exception/InvalidArgumentTypeException.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?php
2-
namespace ClassTemplate\Exception;
2+
namespace CodeGEn\Exception;
33
use InvalidArgumentException;
44

55
class InvalidArgumentTypeException extends InvalidArgumentException
File renamed without changes.

src/ClassTemplate/Indenter.php src/CodeGen/Indenter.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?php
2-
namespace ClassTemplate;
2+
namespace CodeGen;
33

44
class Indenter
55
{

src/ClassTemplate/Line.php src/CodeGen/Line.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
2-
namespace ClassTemplate;
3-
use ClassTemplate\Renderable;
2+
namespace CodeGen;
3+
use CodeGen\Renderable;
44

55
abstract class Line implements Renderable {
66

0 commit comments

Comments
 (0)