Skip to content
Open

v2 #1

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions docs/MdGen/__CLASS__.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# **Class** MdGen

Full name : `alphayax\mdGen\MdGen`

## Properties

- `srcDirectory`
- `loadedClasses`
- `chapters`
- `rootPage`

## Constants

- `DEFAULT_SRC_DIRECTORY = ''`

## Methods summary

| Method | Description |
|---|---|
| [`__construct`](__construct.md) | MdGen constructor. |
| [`loadClasses`](loadClasses.md) | Load class in the source directory |
| [`filterNamespace`](filterNamespace.md) | Filter class who are in a specific namespace |
| [`filterSubClasses`](filterSubClasses.md) | Filter class who are sub-classes of a specific class |
| [`generateClassMdFromLoadedClasses`](generateClassMdFromLoadedClasses.md) | Create a chapter form loaded classes |
| [`generate`](generate.md) | Generate markdown files |
37 changes: 37 additions & 0 deletions docs/MdGen/__construct.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
**Namespace** : [alphayax\mdGen](../__NAMESPACE__.md) -
**Class** : [MdGen](__CLASS__.md)

## `MdGen::__construct`

#### Description

> MdGen constructor.

#### Signature

```php
public function __construct($srcDirectory, $rootNamespace);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `$srcDirectory` | unknown | |
| `$rootNamespace` | unknown | |

#### Return

> No Return

#### Implementation

```php
public function __construct( $srcDirectory = self::DEFAULT_SRC_DIRECTORY, $rootNamespace){
$this->rootNamespace = $rootNamespace;
$this->srcDirectory = $srcDirectory;
$this->loadClasses();
$this->filterNamespace( $rootNamespace);
}

```
39 changes: 39 additions & 0 deletions docs/MdGen/filterNamespace.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
**Namespace** : [alphayax\mdGen](../__NAMESPACE__.md) -
**Class** : [MdGen](__CLASS__.md)

## `MdGen::filterNamespace`

#### Description

> Filter class who are in a specific namespace

#### Signature

```php
public function filterNamespace($namespaceName);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `$namespaceName` | string | Namespace Name to filter |

#### Return

> No Return

#### Implementation

```php
public function filterNamespace( $namespaceName) {
$FilteredClasses = [];
foreach( $this->loadedClasses as $loadedClass){
if( 0 == substr_compare( $loadedClass, $namespaceName, 0, strlen( $namespaceName))){
$FilteredClasses[] = $loadedClass;
}
}
$this->loadedClasses = $FilteredClasses;
}

```
39 changes: 39 additions & 0 deletions docs/MdGen/filterSubClasses.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
**Namespace** : [alphayax\mdGen](../__NAMESPACE__.md) -
**Class** : [MdGen](__CLASS__.md)

## `MdGen::filterSubClasses`

#### Description

> Filter class who are sub-classes of a specific class

#### Signature

```php
public function filterSubClasses($className);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `$className` | string | Super class name to filter |

#### Return

> No Return

#### Implementation

```php
public function filterSubClasses( $className) {
$FilteredClasses = [];
foreach( $this->loadedClasses as $loadedClass){
if( is_subclass_of( $loadedClass, $className)){
$FilteredClasses[] = $loadedClass;
}
}
$this->loadedClasses = $FilteredClasses;
}

```
36 changes: 36 additions & 0 deletions docs/MdGen/generate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
**Namespace** : [alphayax\mdGen](../__NAMESPACE__.md) -
**Class** : [MdGen](__CLASS__.md)

## `MdGen::generate`

#### Description

> Generate markdown files

#### Signature

```php
public function generate($directory);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `$directory` | string | Path to generated files |

#### Return

> No Return

#### Implementation

```php
public function generate( $directory = '.'){
$chapters = $this->generateClassMdFromLoadedClasses();
$this->rootPage = new models\NamespaceMd( $this->rootNamespace, $chapters);
$this->rootPage->setDirectory( $directory);
$this->rootPage->write();
}

```
35 changes: 35 additions & 0 deletions docs/MdGen/generateClassMdFromLoadedClasses.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
**Namespace** : [alphayax\mdGen](../__NAMESPACE__.md) -
**Class** : [MdGen](__CLASS__.md)

## `MdGen::generateClassMdFromLoadedClasses`

#### Description

> Create a chapter form loaded classes

#### Signature

```php
protected function generateClassMdFromLoadedClasses();
```

#### Parameters

> No parameters

#### Return

ClassMd[]

#### Implementation

```php
protected function generateClassMdFromLoadedClasses(){
$classMds = [];
foreach( $this->loadedClasses as $class){
$classMds[] = new ClassMd( $class);
}
return $classMds;
}

```
48 changes: 48 additions & 0 deletions docs/MdGen/loadClasses.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
**Namespace** : [alphayax\mdGen](../__NAMESPACE__.md) -
**Class** : [MdGen](__CLASS__.md)

## `MdGen::loadClasses`

#### Description

> Load class in the source directory

#### Signature

```php
protected function loadClasses();
```

#### Parameters

> No parameters

#### Return

> No Return

#### Implementation

```php
protected function loadClasses(){
if( ! is_dir( $this->srcDirectory)){
throw new \Exception( 'Source directory not found : '. $this->srcDirectory);
}

/// Recursively scan PHP Files
$objects = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator( $this->srcDirectory), \RecursiveIteratorIterator::SELF_FIRST);
$Regex = new \RegexIterator( $objects, '/^.+\.php$/i', \RecursiveRegexIterator::GET_MATCH);
foreach( $Regex as $name => $object){
if ( ! empty( $name)) {
require_once $name;
}
}

/// Extract data from loaded classes
$classes = get_declared_classes();
$traits = get_declared_traits();
$interfaces = get_declared_interfaces();
$this->loadedClasses = array_merge( $classes, $traits, $interfaces);
}

```
31 changes: 8 additions & 23 deletions docs/__NAMESPACE__.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,15 @@
# Namespace mdGen

# mdGen

**Namespace** : alphayax\mdGen
**Full name** : `alphayax\mdGen`

# Overview

- [models](./models/__NAMESPACE__.md)
- [NamespaceMd](models/__NAMESPACE__.md#NamespaceMd)
- [ClassMd](models/__NAMESPACE__.md#ClassMd)
- [MethodMd](models/__NAMESPACE__.md#MethodMd)
- [NamespaceMd](models/NamespaceMd/__CLASS__.md)
- [ClassMd](models/ClassMd/__CLASS__.md)
- [MethodMd](models/MethodMd/__CLASS__.md)
- [ParamMd](models/ParamMd/__CLASS__.md)
- [utils](./utils/__NAMESPACE__.md)
- [arrayAccessProperties](utils/__NAMESPACE__.md#arrayAccessProperties)
- [MdGen](__NAMESPACE__.md#MdGen)


---
<a name="MdGen"></a>
## MdGen

**Class** : alphayax\mdGen\MdGen

### Public methods

| Method | Description |
|---|---|
| `filterNamespace` | Filter class who are in a specific namespace |
| `filterSubClasses` | Filter class who are sub-classes of a specific class |
| `generate` | Generate markdown files |
- [arrayAccessProperties](utils/arrayAccessProperties/__CLASS__.md)
- [MdGen](MdGen/__CLASS__.md)

33 changes: 33 additions & 0 deletions docs/models/ClassMd/__CLASS__.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# **Class** ClassMd

Full name : `alphayax\mdGen\models\ClassMd`

## Properties

- `class`
- `reflexion`
- `publicMethods`
- `methods`
- `type`
- `properties`
- `constants`

## Constants

> No constants

## Methods summary

| Method | Description |
|---|---|
| [`__construct`](__construct.md) | ClassChapter constructor. |
| [`computeType`](computeType.md) | Determine the type of class |
| [`getNextComponent`](getNextComponent.md) | Get the next namespace component (according the NS given) |
| [`getNamespace`](getNamespace.md) | Get the namespace of the current reflected class |
| [`getReflexion`](getReflexion.md) | Get the reflected class |
| [`write`](write.md) | |
| [`writeMethods`](writeMethods.md) | |
| [`offsetExists`](offsetExists.md) | Whether a offset exists |
| [`offsetGet`](offsetGet.md) | Offset to retrieve |
| [`offsetSet`](offsetSet.md) | Offset to set |
| [`offsetUnset`](offsetUnset.md) | Offset to unset |
Loading