Skip to content

Commit 661fa28

Browse files
committed
update deps; removed reflection parsers
1 parent 5be53cf commit 661fa28

26 files changed

+66
-278
lines changed

.project

+5
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@
55
<projects>
66
</projects>
77
<buildSpec>
8+
<buildCommand>
9+
<name>org.eclipse.php.composer.core.builder.buildPathManagementBuilder</name>
10+
<arguments>
11+
</arguments>
12+
</buildCommand>
813
<buildCommand>
914
<name>org.eclipse.wst.common.project.facet.core.builder</name>
1015
<arguments>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
eclipse.preferences.version=1
2+
org.eclipse.php.composer.corebuildpath.includes.excludes=<buildpathentry including\="tests/" kind\="src" path\="vendor"/>\n

.settings/org.eclipse.php.core.prefs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
eclipse.preferences.version=1
2-
phpVersion=php5.4
2+
phpVersion=php5.6
33
useShortTags=false
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<faceted-project>
3+
<installed facet="php.core.component" version="1"/>
4+
<installed facet="php.component" version="7.1"/>
5+
<installed facet="php.composer.component" version="1"/>
6+
</faceted-project>

README.md

+8-14
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,20 @@
11
# PHP Code Generator
22

3-
[![License](https://poser.pugx.org/gossi/php-code-generator/license)](https://packagist.org/packages/gossi/php-code-generator)
4-
[![Latest Stable Version](https://poser.pugx.org/gossi/php-code-generator/v/stable)](https://packagist.org/packages/gossi/php-code-generator)
5-
[![Total Downloads](https://poser.pugx.org/gossi/php-code-generator/downloads)](https://packagist.org/packages/gossi/php-code-generator)<br>
6-
[![HHVM Status](http://hhvm.h4cc.de/badge/gossi/php-code-generator.svg?style=flat)](http://hhvm.h4cc.de/package/gossi/php-code-generator)
7-
[![Build Status](https://travis-ci.org/gossi/php-code-generator.svg?branch=master)](https://travis-ci.org/gossi/php-code-generator)
8-
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/gossi/php-code-generator/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/gossi/php-code-generator/?branch=master)
9-
[![Code Coverage](https://scrutinizer-ci.com/g/gossi/php-code-generator/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/gossi/php-code-generator/?branch=master)
3+
[![License](https://img.shields.io/github/license/gossi/php-code-generator.svg?style=flat-square)](https://packagist.org/packages/gossi/php-code-generator)
4+
[![Latest Stable Version](https://img.shields.io/packagist/v/gossi/php-code-generator.svg?style=flat-square)](https://packagist.org/packages/gossi/php-code-generator)
5+
[![Total Downloads](https://img.shields.io/packagist/dt/gossi/php-code-generator.svg?style=flat-square&colorB=007ec6)](https://packagist.org/packages/gossi/php-code-generator)<br>
6+
[![Build Status](https://img.shields.io/scrutinizer/build/g/gossi/php-code-generator.svg?style=flat-square)](https://travis-ci.org/gossi/php-code-generator)
7+
[![Scrutinizer Code Quality](https://img.shields.io/scrutinizer/g/gossi/php-code-generator.svg?style=flat-square)](https://scrutinizer-ci.com/g/gossi/php-code-generator)
8+
[![Code Coverage](https://img.shields.io/scrutinizer/coverage/g/gossi/php-code-generator.svg?style=flat-square)](https://scrutinizer-ci.com/g/gossi/php-code-generator)
109

1110
This library provides some tools that you commonly need for generating PHP code.
1211

1312
## Installation
1413

1514
Install via Composer:
1615

17-
```json
18-
{
19-
"require": {
20-
"gossi/php-code-generator": "dev-master"
21-
}
22-
}
16+
```
17+
composer require gossi/php-code-generator
2318
```
2419

2520
## Documentation
@@ -30,7 +25,6 @@ Documentation is available at [https://php-code-generator.readthedocs.org](https
3025

3126
Feel free to fork and submit a pull request (don't forget the tests) and I am happy to merge.
3227

33-
3428
## References
3529

3630
- This project is a spin-off of the older [schmittjoh/cg-library](https://github.com/schmittjoh/cg-library) library.

composer.json

+12-5
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111
"keywords" : [
1212
"code generation"
1313
],
14+
"support" : {
15+
"issues" : "https://github.com/gossi/php-code-generator/issues"
16+
},
1417
"autoload" : {
1518
"psr-4" : {
1619
"gossi\\codegen\\" : "src/"
@@ -22,18 +25,22 @@
2225
}
2326
},
2427
"require" : {
25-
"php" : ">=5.4",
28+
"php" : ">=5.6",
2629
"gossi/docblock" : "~1",
27-
"symfony/options-resolver" : "~2|~3",
30+
"symfony/options-resolver" : "^3",
2831
"phootwork/file" : "~0",
2932
"phootwork/tokenizer" : "~0",
30-
"nikic/php-parser" : "~1|~2"
33+
"nikic/php-parser" : "^3|^2|^1"
3134
},
3235
"require-dev" : {
33-
"phpunit/phpunit" : "~4",
34-
"sami/sami" : "~3"
36+
"phpunit/phpunit" : "^5.7",
37+
"sami/sami" : "^4|^3"
3538
},
3639
"suggest" : {
3740
"gossi/php-code-formatter" : "Formatting your generated code"
41+
},
42+
"scripts" : {
43+
"test" : "phpunit",
44+
"api" : "sami.php update sami.php"
3845
}
3946
}

src/generator/CodeFileGenerator.php

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
use gossi\codegen\config\CodeFileGeneratorConfig;
55
use gossi\codegen\model\GenerateableInterface;
6-
use gossi\docblock\Docblock;
76
use phootwork\lang\Text;
87

98
/**

src/generator/builder/AbstractBuilder.php

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
<?php
22
namespace gossi\codegen\generator\builder;
33

4+
use gossi\codegen\config\CodeGeneratorConfig;
45
use gossi\codegen\generator\ModelGenerator;
56
use gossi\codegen\generator\utils\Writer;
67
use gossi\codegen\model\AbstractModel;
7-
use gossi\docblock\Docblock;
8-
use gossi\codegen\config\CodeGeneratorConfig;
98
use gossi\codegen\model\DocblockInterface;
109

1110
abstract class AbstractBuilder {

src/model/PhpClass.php

-11
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,6 @@ class PhpClass extends AbstractPhpStruct implements GenerateableInterface, Trait
3030
/** @var string */
3131
private $parentClassName;
3232

33-
/**
34-
* Creates a PHP class from reflection
35-
*
36-
* @deprecated Use fromFile() instead
37-
* @param \ReflectionClass $ref
38-
* @return PhpClass
39-
*/
40-
public static function fromReflection(\ReflectionClass $ref) {
41-
return static::fromFile($ref->getFileName());
42-
}
43-
4433
/**
4534
* Creates a PHP class from file
4635
*

src/model/PhpFunction.php

+22-23
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
use gossi\codegen\model\parts\ReferenceReturnPart;
2626
use gossi\codegen\model\parts\TypeDocblockGeneratorPart;
2727
use gossi\codegen\model\parts\TypePart;
28-
use gossi\codegen\utils\ReflectionUtils;
2928
use gossi\docblock\Docblock;
3029
use gossi\docblock\tags\ReturnTag;
3130

@@ -46,32 +45,32 @@ class PhpFunction extends AbstractModel implements GenerateableInterface, Namesp
4645
use TypeDocblockGeneratorPart;
4746
use TypePart;
4847

49-
/**
50-
* Creates a PHP function from reflection
51-
*
52-
* @deprecated will be removed in version 0.5
53-
* @param \ReflectionFunction $ref
54-
* @return PhpFunction
55-
*/
56-
public static function fromReflection(\ReflectionFunction $ref) {
57-
$function = self::create($ref->name)
58-
->setReferenceReturned($ref->returnsReference())
59-
->setBody(ReflectionUtils::getFunctionBody($ref));
48+
// /**
49+
// * Creates a PHP function from reflection
50+
// *
51+
// * @deprecated will be removed in version 0.5
52+
// * @param \ReflectionFunction $ref
53+
// * @return PhpFunction
54+
// */
55+
// public static function fromReflection(\ReflectionFunction $ref) {
56+
// $function = self::create($ref->name)
57+
// ->setReferenceReturned($ref->returnsReference())
58+
// ->setBody(ReflectionUtils::getFunctionBody($ref));
6059

61-
$docblock = new Docblock($ref);
62-
$function->setDocblock($docblock);
63-
$function->setDescription($docblock->getShortDescription());
64-
$function->setLongDescription($docblock->getLongDescription());
60+
// $docblock = new Docblock($ref);
61+
// $function->setDocblock($docblock);
62+
// $function->setDescription($docblock->getShortDescription());
63+
// $function->setLongDescription($docblock->getLongDescription());
6564

66-
foreach ($ref->getParameters() as $refParam) {
67-
assert($refParam instanceof \ReflectionParameter); // hmm - assert here?
65+
// foreach ($ref->getParameters() as $refParam) {
66+
// assert($refParam instanceof \ReflectionParameter); // hmm - assert here?
6867
69-
$param = PhpParameter::fromReflection($refParam);
70-
$function->addParameter($param);
71-
}
68+
// $param = PhpParameter::fromReflection($refParam);
69+
// $function->addParameter($param);
70+
// }
7271

73-
return $function;
74-
}
72+
// return $function;
73+
// }
7574

7675
/**
7776
* Creates a new PHP function

src/model/PhpInterface.php

-11
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,6 @@ class PhpInterface extends AbstractPhpStruct implements GenerateableInterface, C
1818
use ConstantsPart;
1919
use InterfacesPart;
2020

21-
/**
22-
* Creates a PHP interface from reflection
23-
*
24-
* @deprecated Use fromFile() instead
25-
* @param \ReflectionClass $ref
26-
* @return PhpInterface
27-
*/
28-
public static function fromReflection(\ReflectionClass $ref) {
29-
return static::fromFile($ref->getFileName());
30-
}
31-
3221
/**
3322
* Creates a PHP interface from file
3423
*

src/model/PhpMethod.php

-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
use gossi\codegen\model\parts\ParametersPart;
2323
use gossi\codegen\model\parts\ReferenceReturnPart;
2424
use gossi\codegen\model\parts\TypeDocblockGeneratorPart;
25-
use gossi\docblock\Docblock;
2625
use gossi\docblock\tags\ReturnTag;
2726

2827
/**

src/model/PhpParameter.php

-53
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
use gossi\codegen\model\parts\NamePart;
2020
use gossi\codegen\model\parts\TypePart;
2121
use gossi\codegen\model\parts\ValuePart;
22-
use gossi\docblock\Docblock;
2322
use gossi\docblock\tags\ParamTag;
2423

2524
/**
@@ -46,58 +45,6 @@ public static function create($name = null) {
4645
return new static($name);
4746
}
4847

49-
/**
50-
* Creates a PHP parameter from reflection
51-
*
52-
* @deprecated will be removed in version 0.5
53-
* @param \ReflectionParameter $ref
54-
* @return PhpParameter
55-
*/
56-
public static function fromReflection(\ReflectionParameter $ref) {
57-
$parameter = new static();
58-
$parameter->setName($ref->name)->setPassedByReference($ref->isPassedByReference());
59-
60-
if ($ref->isDefaultValueAvailable()) {
61-
$value = $ref->getDefaultValue();
62-
63-
if (is_string($value)
64-
|| is_int($value)
65-
|| is_float($value)
66-
|| is_bool($value)
67-
|| is_null($value)
68-
|| ($value instanceof PhpConstant)) {
69-
$parameter->setValue($value);
70-
} else {
71-
$parameter->setExpression($value);
72-
}
73-
}
74-
75-
// find type and description in docblock
76-
$docblock = new Docblock($ref->getDeclaringFunction());
77-
78-
$params = $docblock->getTags('param');
79-
$tag = $params->find($ref->name, function (ParamTag $t, $name) {
80-
return $t->getVariable() == '$' . $name;
81-
});
82-
83-
if ($tag !== null) {
84-
$parameter->setType($tag->getType(), $tag->getDescription());
85-
}
86-
87-
// set type if not found in comment
88-
if ($parameter->getType() === null) {
89-
if ($ref->isArray()) {
90-
$parameter->setType('array');
91-
} elseif ($class = $ref->getClass()) {
92-
$parameter->setType($class->getName());
93-
} elseif (method_exists($ref, 'isCallable') && $ref->isCallable()) {
94-
$parameter->setType('callable');
95-
}
96-
}
97-
98-
return $parameter;
99-
}
100-
10148
/**
10249
* Creates a new PHP parameter
10350
*

src/model/PhpProperty.php

-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
use gossi\codegen\model\parts\TypeDocblockGeneratorPart;
2020
use gossi\codegen\model\parts\ValuePart;
21-
use gossi\docblock\Docblock;
2221
use gossi\docblock\tags\VarTag;
2322

2423
/**

src/model/PhpTrait.php

-11
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,6 @@ class PhpTrait extends AbstractPhpStruct implements GenerateableInterface, Trait
1919
use PropertiesPart;
2020
use TraitsPart;
2121

22-
/**
23-
* Creates a PHP trait from reflection
24-
*
25-
* @deprecated Use fromFile() instead
26-
* @param \ReflectionClass $ref
27-
* @return PhpTrait
28-
*/
29-
public static function fromReflection(\ReflectionClass $ref) {
30-
return static::fromFile($ref->getFileName());
31-
}
32-
3322
/**
3423
* Creates a PHP trait from a file
3524
*

src/model/PropertiesInterface.php

+3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
<?php
22
namespace gossi\codegen\model;
33

4+
use phootwork\collection\Map;
5+
use phootwork\collection\Set;
6+
47
interface PropertiesInterface {
58

69
/**

src/model/parts/ParametersPart.php

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
use gossi\codegen\model\PhpParameter;
55
use gossi\docblock\tags\ParamTag;
6+
use gossi\docblock\Docblock;
67

78
/**
89
* Parameters Part

src/model/parts/PropertiesPart.php

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
use gossi\codegen\model\PhpProperty;
55
use phootwork\collection\Map;
6+
use phootwork\collection\Set;
67

78
/**
89
* Properties part

src/model/parts/TypeDocblockGeneratorPart.php

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
namespace gossi\codegen\model\parts;
33

44
use gossi\docblock\tags\AbstractTag;
5+
use gossi\docblock\Docblock;
56

67
/**
78
* Type docblock generator part

src/parser/visitor/StructParserVisitor.php

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,16 @@
22
namespace gossi\codegen\parser\visitor;
33

44
use PhpParser\Comment\Doc;
5-
use PhpParser\Node;
65
use PhpParser\Node\Const_;
7-
use PhpParser\Node\Stmt\Class_;
86
use PhpParser\Node\Stmt\ClassConst;
97
use PhpParser\Node\Stmt\ClassLike;
108
use PhpParser\Node\Stmt\ClassMethod;
9+
use PhpParser\Node\Stmt\Class_;
1110
use PhpParser\Node\Stmt\Interface_;
1211
use PhpParser\Node\Stmt\Namespace_;
1312
use PhpParser\Node\Stmt\Property;
14-
use PhpParser\Node\Stmt\Trait_;
1513
use PhpParser\Node\Stmt\TraitUse;
14+
use PhpParser\Node\Stmt\Trait_;
1615
use PhpParser\Node\Stmt\UseUse;
1716
use gossi\codegen\model\AbstractPhpStruct;
1817

src/parser/visitor/parts/StructParserPart.php

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use PhpParser\Node\Stmt\TraitUse;
66
use PhpParser\Node\Stmt\Namespace_;
77
use PhpParser\Node\Stmt\UseUse;
8+
use gossi\codegen\model\AbstractPhpStruct;
89

910
trait StructParserPart {
1011

0 commit comments

Comments
 (0)