Skip to content

Commit

Permalink
Auto-insert 'use Traits' into files via .build.php during build process
Browse files Browse the repository at this point in the history
  • Loading branch information
raamdev committed Apr 10, 2016
1 parent 75f64df commit 61dbabe
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 89 deletions.
22 changes: 1 addition & 21 deletions src/includes/classes/AbsBaseAp.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,27 +11,7 @@
*/
abstract class AbsBaseAp extends AbsBase implements Interfaces\Shared\NcDebugConsts, Interfaces\Shared\CachePathConsts
{
use Traits\Shared\BlogUtils;
use Traits\Shared\CacheDirUtils;
use Traits\Shared\CacheLockUtils;
use Traits\Shared\CachePathUtils;
use Traits\Shared\ConditionalUtils;
use Traits\Shared\DomainMappingUtils;
use Traits\Shared\EscapeUtils;
use Traits\Shared\FsUtils;
use Traits\Shared\HookUtils;
use Traits\Shared\HttpUtils;
use Traits\Shared\I18nUtils;
use Traits\Shared\IpAddrUtils;
use Traits\Shared\PatternUtils;
use Traits\Shared\ReplaceUtils;
use Traits\Shared\ServerUtils;
use Traits\Shared\StringUtils;
use Traits\Shared\SysUtils;
use Traits\Shared\TokenUtils;
use Traits\Shared\TrimUtils;
use Traits\Shared\UrlUtils;

/*[.build.php-auto-generate-use-Traits]*/
/**
* Class constructor.
*
Expand Down
10 changes: 1 addition & 9 deletions src/includes/classes/AdvancedCache.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,7 @@
*/
class AdvancedCache extends AbsBaseAp
{
use Traits\Ac\AbortUtils;
use Traits\Ac\AcPluginUtils;
use Traits\Ac\BrowserUtils;
use Traits\Ac\HtmlCUtils;
use Traits\Ac\NcDebugUtils;
use Traits\Ac\ObUtils;
use Traits\Ac\PostloadUtils;
use Traits\Ac\ShutdownUtils;

/*[.build.php-auto-generate-use-Traits]*/
/**
* Flagged as `TRUE` if running.
*
Expand Down
45 changes: 1 addition & 44 deletions src/includes/classes/Plugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,50 +11,7 @@
*/
class Plugin extends AbsBaseAp
{
use Traits\Plugin\ActionUtils;
use Traits\Plugin\AdminBarUtils;
use Traits\Plugin\AutoCacheUtils;
use Traits\Plugin\BbPressUtils;
use Traits\Plugin\CdnUtils;
use Traits\Plugin\CleanupUtils;
use Traits\Plugin\CondUtils;
use Traits\Plugin\CronUtils;
use Traits\Plugin\DbUtils;
use Traits\Plugin\DirUtils;
use Traits\Plugin\HtaccessUtils;
use Traits\Plugin\HtmlCUtils;
use Traits\Plugin\InstallUtils;
use Traits\Plugin\MenuPageUtils;
use Traits\Plugin\NoticeUtils;
use Traits\Plugin\OptionUtils;
use Traits\Plugin\PostUtils;
use Traits\Plugin\StatsUtils;
use Traits\Plugin\UpdateUtils;
use Traits\Plugin\UrlUtils;
use Traits\Plugin\UserUtils;
use Traits\Plugin\WcpAuthorUtils;
use Traits\Plugin\WcpCdnUtils;
use Traits\Plugin\WcpCommentUtils;
use Traits\Plugin\WcpEvalUtils;
use Traits\Plugin\WcpFeedUtils;
use Traits\Plugin\WcpHomeBlogUtils;
use Traits\Plugin\WcpHtmlCUtils;
use Traits\Plugin\WcpJetpackUtils;
use Traits\Plugin\WcpOpcacheUtils;
use Traits\Plugin\WcpPluginUtils;
use Traits\Plugin\WcpPostTypeUtils;
use Traits\Plugin\WcpPostUtils;
use Traits\Plugin\WcpS2cleanUtils;
use Traits\Plugin\WcpSettingUtils;
use Traits\Plugin\WcpSitemapUtils;
use Traits\Plugin\WcpTermUtils;
use Traits\Plugin\WcpTransientUtils;
use Traits\Plugin\WcpUpdaterUtils;
use Traits\Plugin\WcpUrlUtils;
use Traits\Plugin\WcpUserUtils;
use Traits\Plugin\WcpUtils;
use Traits\Plugin\WcpWooCommerceUtils;

/*[.build.php-auto-generate-use-Traits]*/
/**
* Enable plugin hooks?
*
Expand Down
18 changes: 13 additions & 5 deletions src/includes/traits/Ac/.build.php
Original file line number Diff line number Diff line change
@@ -1,18 +1,26 @@
<?php
/*
* Generate use-list for Trait files in current directory
* Generate use-list for Trait files in current directory and add the list to the appropriate file(s).
*
* When run inside a directory called `Plugin/`, with a PHP file inside `Plugin/` called `ActionUtils.php`,
* this script will generate `use Traits\Plugin\ActionUtils;`.
*
* @TODO Automatically insert this list into appropriate PHP files.
*/
$dest_files = [dirname(dirname(dirname(__FILE__))).'/classes/AdvancedCache.php'];

if ($_handle = opendir(__DIR__)) {
while (false !== ($_file = readdir($_handle))) {
if ($_file != '.' && $_file != '..' && $_file != '.build.php' && stristr($_file, '.php') !== false) {
echo 'use Traits\\'.basename(__DIR__).'\\'.basename($_file, '.php').';'.PHP_EOL;
if ($_file !== '.' && $_file !== '..' && $_file !== '.build.php' && stristr($_file, '.php') !== false) {
$use_traits_list .= 'use Traits\\'.basename(__DIR__).'\\'.basename($_file, '.php').';'.PHP_EOL.' ';
}
}
closedir($_handle);
unset($_file, $_files);
}

foreach ($dest_files as $file) {
echo 'Updating '.$file.PHP_EOL;
echo ' '.$use_traits_list;
$file_contents = file_get_contents($file);
$file_contents = str_replace('/*[.build.php-auto-generate-use-Traits]*/', $use_traits_list, $file_contents);
file_put_contents($file, $file_contents);
}
18 changes: 13 additions & 5 deletions src/includes/traits/Plugin/.build.php
Original file line number Diff line number Diff line change
@@ -1,18 +1,26 @@
<?php
/*
* Generate use-list for Trait files in current directory
* Generate use-list for Trait files in current directory and add the list to the appropriate file(s).
*
* When run inside a directory called `Plugin/`, with a PHP file inside `Plugin/` called `ActionUtils.php`,
* this script will generate `use Traits\Plugin\ActionUtils;`.
*
* @TODO Automatically insert this list into appropriate PHP files.
*/
$dest_files = [dirname(dirname(dirname(__FILE__))).'/classes/Plugin.php'];

if ($_handle = opendir(__DIR__)) {
while (false !== ($_file = readdir($_handle))) {
if ($_file != '.' && $_file != '..' && $_file != '.build.php' && stristr($_file, '.php') !== false) {
echo 'use Traits\\'.basename(__DIR__).'\\'.basename($_file, '.php').';'.PHP_EOL;
if ($_file !== '.' && $_file !== '..' && $_file !== '.build.php' && stristr($_file, '.php') !== false) {
$use_traits_list .= 'use Traits\\'.basename(__DIR__).'\\'.basename($_file, '.php').';'.PHP_EOL.' ';
}
}
closedir($_handle);
unset($_file, $_files);
}

foreach ($dest_files as $file) {
echo 'Updating '.$file.PHP_EOL;
echo ' '.$use_traits_list;
$file_contents = file_get_contents($file);
$file_contents = str_replace('/*[.build.php-auto-generate-use-Traits]*/', $use_traits_list, $file_contents);
file_put_contents($file, $file_contents);
}
18 changes: 13 additions & 5 deletions src/includes/traits/Shared/.build.php
Original file line number Diff line number Diff line change
@@ -1,18 +1,26 @@
<?php
/*
* Generate use-list for Trait files in current directory
* Generate use-list for Trait files in current directory and add the list to the appropriate file(s).
*
* When run inside a directory called `Plugin/`, with a PHP file inside `Plugin/` called `ActionUtils.php`,
* this script will generate `use Traits\Plugin\ActionUtils;`.
*
* @TODO Automatically insert this list into appropriate PHP files.
*/
$dest_files = [dirname(dirname(dirname(__FILE__))).'/classes/AbsBaseAp.php'];

if ($_handle = opendir(__DIR__)) {
while (false !== ($_file = readdir($_handle))) {
if ($_file != '.' && $_file != '..' && $_file != '.build.php' && stristr($_file, '.php') !== false) {
echo 'use Traits\\'.basename(__DIR__).'\\'.basename($_file, '.php').';'.PHP_EOL;
if ($_file !== '.' && $_file !== '..' && $_file !== '.build.php' && stristr($_file, '.php') !== false) {
$use_traits_list .= 'use Traits\\'.basename(__DIR__).'\\'.basename($_file, '.php').';'.PHP_EOL.' ';
}
}
closedir($_handle);
unset($_file, $_files);
}

foreach ($dest_files as $file) {
echo 'Updating '.$file.PHP_EOL;
echo ' '.$use_traits_list;
$file_contents = file_get_contents($file);
$file_contents = str_replace('/*[.build.php-auto-generate-use-Traits]*/', $use_traits_list, $file_contents);
file_put_contents($file, $file_contents);
}

0 comments on commit 61dbabe

Please sign in to comment.