From ef81cee5b044635dae10ff7cb9df02e61a642d2c Mon Sep 17 00:00:00 2001 From: Daniil Gentili Date: Sat, 5 Sep 2020 22:39:54 +0200 Subject: [PATCH] Replace URL --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index c6eb7f6..f9c8fd7 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Created by [Daniil Gentili](https://daniil.it) ## Design -After [hooking into composer](https://github.com/danog/phabel/tree/master/src/Composer) by specifying a custom repository, the transpilation process begins. +After [hooking into composer](https://github.com/phabelio/phabel/tree/master/src/Composer) by specifying a custom repository, the transpilation process begins. ### 1. Composer dependency graph @@ -21,8 +21,8 @@ All dependencies of a package with a phabel configuration are processed with pha ### 2. Phabel plugin graph -All plugins specified in the configuration of each package are added to the [phabel plugin graph](https://github.com/danog/phabel/blob/master/src/PluginGraph/GraphInternal.php). -The [plugin graph](https://github.com/danog/phabel/blob/master/src/PluginGraph/GraphInternal.php) takes care of properly trickling configuration values and plugins down the dependency graph, as well as plugin graph optimization by merging multiple transforms (if allowed) in a single AST traversal. +All plugins specified in the configuration of each package are added to the [phabel plugin graph](https://github.com/phabelio/phabel/blob/master/src/PluginGraph/GraphInternal.php). +The [plugin graph](https://github.com/phabelio/phabel/blob/master/src/PluginGraph/GraphInternal.php) takes care of properly trickling configuration values and plugins down the dependency graph, as well as plugin graph optimization by merging multiple transforms (if allowed) in a single AST traversal. It will also detect circular references in [plugin dependencies](#3-2-plugin-dependencies). @@ -30,26 +30,26 @@ It will also detect circular references in [plugin dependencies](#3-2-plugin-dep #### 3.1 AST traversal -Each [phabel plugin](https://github.com/danog/phabel/blob/master/src/PluginInterface.php) can specify multiple `leave*` and `enter*` methods, called when traversing down or up the dependency graph. +Each [phabel plugin](https://github.com/phabelio/phabel/blob/master/src/PluginInterface.php) can specify multiple `leave*` and `enter*` methods, called when traversing down or up the dependency graph. These methods will be called only for nodes matching the typehint of the parameter. -A second, optional parameter can be provided, to allow the [Traverser](https://github.com/danog/phabel/blob/master/src/Traverser.php) to pass a [Context](https://github.com/danog/phabel/blob/master/src/Context.php) object with helper methods for replacing nodes in arbitrary positions of the AST stack. +A second, optional parameter can be provided, to allow the [Traverser](https://github.com/phabelio/phabel/blob/master/src/Traverser.php) to pass a [Context](https://github.com/phabelio/phabel/blob/master/src/Context.php) object with helper methods for replacing nodes in arbitrary positions of the AST stack. #### 3.2 Plugin dependencies Plugins can also specify other plugins as "dependencies" or "reverse dependencies", with the `runBefore`, `runAfter`, `runWithBefore`, `runWithAfter` methods, to force some transforms to run before others. By using the `*with*` methods, additional plugin graph optimization is allowed by merging multiple transforms in a single AST traversal. -Each [phabel plugin](https://github.com/danog/phabel/blob/master/src/PluginInterface.php) can also accept a configuration: this a simple way to reuse code, by specifying a single plugin for a class of transforms, and then requiring it from other plugins, specifying a specific configuration to trigger only certain transforms. +Each [phabel plugin](https://github.com/phabelio/phabel/blob/master/src/PluginInterface.php) can also accept a configuration: this a simple way to reuse code, by specifying a single plugin for a class of transforms, and then requiring it from other plugins, specifying a specific configuration to trigger only certain transforms. #### 3.3 Plugin configuration Configuration arrays are coupled with plugins when resolving the plugin graph. -When possible, the plugin graph will try to merge a plugin with multiple configs into a single (or fewer) plugins using the [`mergeConfigs` method](https://github.com/danog/phabel/blob/master/src/PluginInterface.php) of the plugin. +When possible, the plugin graph will try to merge a plugin with multiple configs into a single (or fewer) plugins using the [`mergeConfigs` method](https://github.com/phabelio/phabel/blob/master/src/PluginInterface.php) of the plugin. This merge method will be called automatically during plugin graph flattening, if requirement links allow it. ### 4. Transforms -[Multiple transforms are available](https://github.com/danog/phabel/tree/master/src/Target), covering all PHP 7 features. -More complex and generic transforms like typehint and nested expression polyfilling can be found in the [plugin folder](https://github.com/danog/phabel/tree/master/src/Plugin). +[Multiple transforms are available](https://github.com/phabelio/phabel/tree/master/src/Target), covering all PHP 7 features. +More complex and generic transforms like typehint and nested expression polyfilling can be found in the [plugin folder](https://github.com/phabelio/phabel/tree/master/src/Plugin).