From d92a778d103a339dd2cc790d93759a9c7c9b96f1 Mon Sep 17 00:00:00 2001 From: Andrey Savchenko Date: Fri, 23 Feb 2018 15:32:18 +0200 Subject: [PATCH] Adjusted structure for PDS skeleton. --- README.md | 1 + RoboFile.php | 18 +- composer.json | 3 +- composer.lock | 33 +- {css => public/css}/laps.css | 0 {css => public/css}/laps.css.map | 0 {css => public/css}/laps.less | 166 +++++----- {css => public/css}/laps.min.css | 0 {css => public/css}/variables.less | 40 +-- {js => public/js}/laps.js | 0 {js => public/js}/laps.min.js | 0 {js => public/js}/source.js | 0 src/Manager/Asset_Manager.php | 4 +- src/Plugin.php | 4 +- ...tache_a04731de0bb9e043ecde3814b3a901bb.php | 111 +++++++ {views => src/mustache}/laps.mustache | 16 +- ...tache_797f2a84b9a5a7b601644494da75d61e.php | 292 ------------------ 17 files changed, 270 insertions(+), 418 deletions(-) rename {css => public/css}/laps.css (100%) rename {css => public/css}/laps.css.map (100%) rename {css => public/css}/laps.less (72%) rename {css => public/css}/laps.min.css (100%) rename {css => public/css}/variables.less (91%) rename {js => public/js}/laps.js (100%) rename {js => public/js}/laps.min.js (100%) rename {js => public/js}/source.js (100%) create mode 100644 src/mustache/cache/__Mustache_a04731de0bb9e043ecde3814b3a901bb.php rename {views => src/mustache}/laps.mustache (93%) delete mode 100644 views/cache/__Mustache_797f2a84b9a5a7b601644494da75d61e.php diff --git a/README.md b/README.md index 3ff19f7..b100f70 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ [![Code Coverage](https://scrutinizer-ci.com/g/Rarst/laps/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/Rarst/laps/?branch=master) [![Latest Stable Version](https://poser.pugx.org/rarst/laps/v/stable)](https://packagist.org/packages/rarst/laps) [![Total Downloads](https://poser.pugx.org/rarst/laps/downloads)](https://packagist.org/packages/rarst/laps) +[![PDS Skeleton](https://img.shields.io/badge/pds-skeleton-blue.svg)](https://github.com/php-pds/skeleton) ![Laps screenshot](http://i.imgur.com/zFokmkU.png) diff --git a/RoboFile.php b/RoboFile.php index 410f6f5..857e494 100644 --- a/RoboFile.php +++ b/RoboFile.php @@ -15,10 +15,10 @@ class RoboFile extends \Robo\Tasks { public function watch() { $this->taskWatch() - ->monitor( [ 'css/variables.less', 'css/laps.less' ], function () { + ->monitor( [ 'public/css/variables.less', 'public/css/laps.less' ], function () { $this->makeCss(); } ) - ->monitor( 'js/source.js', function () { + ->monitor( 'public/js/source.js', function () { $this->makeJs(); } ) ->run(); @@ -39,9 +39,9 @@ public function makeAll() { */ public function makeCss() { - $this->taskExec( 'lessc css/laps.less css/laps.css --source-map=css/laps.css.map' )->run(); + $this->taskExec( 'lessc public/css/laps.less public/css/laps.css --source-map=public/css/laps.css.map' )->run(); - $this->taskMinify( 'css/laps.css' ) + $this->taskMinify( 'public/css/laps.css' ) ->run(); } @@ -52,12 +52,12 @@ public function makeJs() { $this->taskConcat( [ 'vendor/twbs/bootstrap/js/tooltip.js', - 'js/source.js', + 'public/js/source.js', ] ) - ->to( 'js/laps.js' ) + ->to( 'public/js/laps.js' ) ->run(); - $this->taskMinify( 'js/laps.js' ) + $this->taskMinify( 'public/js/laps.js' ) ->run(); } @@ -65,11 +65,11 @@ public function makeJs() { * Compiles plugin's mustache template */ public function makeMustache() { - $dir = __DIR__ . '/views/cache'; + $dir = __DIR__ . '/src/mustache/cache'; $this->_cleanDir( $dir ); $mustache = new \Mustache_Engine( array( - 'loader' => new \Mustache_Loader_FilesystemLoader( __DIR__ . '/views' ), + 'loader' => new \Mustache_Loader_FilesystemLoader( __DIR__ . '/src/mustache' ), 'cache' => $dir, ) ); diff --git a/composer.json b/composer.json index f6f8001..a62fc56 100644 --- a/composer.json +++ b/composer.json @@ -32,6 +32,7 @@ }, "require-dev": { "twbs/bootstrap": "~3.2", - "brain/monkey" : "^2.2" + "brain/monkey" : "^2.2", + "pds/skeleton": "^1.0" } } diff --git a/composer.lock b/composer.lock index 23d7cd3..67dd3fa 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "6e02995f57446a59552f7e5a84a75278", + "content-hash": "ae3ee3a571959800e23b0be51d700c2c", "packages": [ { "name": "composer/installers", @@ -540,6 +540,37 @@ ], "time": "2017-10-06T16:20:43+00:00" }, + { + "name": "pds/skeleton", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-pds/skeleton.git", + "reference": "95e476e5d629eadacbd721c5a9553e537514a231" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-pds/skeleton/zipball/95e476e5d629eadacbd721c5a9553e537514a231", + "reference": "95e476e5d629eadacbd721c5a9553e537514a231", + "shasum": "" + }, + "bin": [ + "bin/pds-skeleton" + ], + "type": "standard", + "autoload": { + "psr-4": { + "Pds\\Skeleton\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "CC-BY-SA-4.0" + ], + "description": "Standard for PHP package skeletons.", + "homepage": "https://github.com/php-pds/skeleton", + "time": "2017-01-25T23:30:41+00:00" + }, { "name": "twbs/bootstrap", "version": "v3.3.7", diff --git a/css/laps.css b/public/css/laps.css similarity index 100% rename from css/laps.css rename to public/css/laps.css diff --git a/css/laps.css.map b/public/css/laps.css.map similarity index 100% rename from css/laps.css.map rename to public/css/laps.css.map diff --git a/css/laps.less b/public/css/laps.less similarity index 72% rename from css/laps.less rename to public/css/laps.less index b54f7f8..dfeb933 100644 --- a/css/laps.less +++ b/public/css/laps.less @@ -1,83 +1,83 @@ -@import (reference) "../vendor/twbs/bootstrap/less/variables.less"; -@import (reference) "../vendor/twbs/bootstrap/less/mixins.less"; -@import (reference) "../vendor/twbs/bootstrap/less/progress-bars.less"; -@import (reference) "../vendor/twbs/bootstrap/less/scaffolding.less"; -@import "variables.less"; - -#wpadminbar { - - #wp-admin-bar-laps { - - .ab-sub-wrapper { - min-width: 90%; - width: 90%; - position: fixed; - left: 5%; - } - - .ab-submenu { - padding: 0; - } - } - - #wp-admin-bar-laps_output { - - padding: 0 10px; - - &:hover { - background-color: transparent; - } - - .ab-empty-item { - display: none; - } - } - - .laps-timeline { - .progress; - margin: 6px 0; - position: relative; - - .event { - .progress-bar; - position: absolute; // disable stacking at start - border-left: 1px solid @timeline-bg; - min-width: 2px; - } - - .event-theme { - background-color: @event-theme-color; - } - .event-plugin { - background-color: @event-plugin-color; - } - .event-core { - background-color: @event-core-color; - } - .event-query-read { - background-color: @event-info-color; - } - .event-query-write { - background-color: @event-warning-color; - } - .event-http { - background-color: @event-warning-color; - } - - .sr-only { - .sr-only; - } - } - - @import "../vendor/twbs/bootstrap/less/tooltip.less"; - - .tooltip.in { - .opacity(1); - } - - .tooltip-inner { - line-height: 20px; - text-align: left; - } -} - +@import (reference) "../../vendor/twbs/bootstrap/less/variables.less"; +@import (reference) "../../vendor/twbs/bootstrap/less/mixins.less"; +@import (reference) "../../vendor/twbs/bootstrap/less/progress-bars.less"; +@import (reference) "../../vendor/twbs/bootstrap/less/scaffolding.less"; +@import "variables.less"; + +#wpadminbar { + + #wp-admin-bar-laps { + + .ab-sub-wrapper { + min-width: 90%; + width: 90%; + position: fixed; + left: 5%; + } + + .ab-submenu { + padding: 0; + } + } + + #wp-admin-bar-laps_output { + + padding: 0 10px; + + &:hover { + background-color: transparent; + } + + .ab-empty-item { + display: none; + } + } + + .laps-timeline { + .progress; + margin: 6px 0; + position: relative; + + .event { + .progress-bar; + position: absolute; // disable stacking at start + border-left: 1px solid @timeline-bg; + min-width: 2px; + } + + .event-theme { + background-color: @event-theme-color; + } + .event-plugin { + background-color: @event-plugin-color; + } + .event-core { + background-color: @event-core-color; + } + .event-query-read { + background-color: @event-info-color; + } + .event-query-write { + background-color: @event-warning-color; + } + .event-http { + background-color: @event-warning-color; + } + + .sr-only { + .sr-only; + } + } + + @import "../../vendor/twbs/bootstrap/less/tooltip.less"; + + .tooltip.in { + .opacity(1); + } + + .tooltip-inner { + line-height: 20px; + text-align: left; + } +} + diff --git a/css/laps.min.css b/public/css/laps.min.css similarity index 100% rename from css/laps.min.css rename to public/css/laps.min.css diff --git a/css/variables.less b/public/css/variables.less similarity index 91% rename from css/variables.less rename to public/css/variables.less index 8807c68..95ccc11 100644 --- a/css/variables.less +++ b/public/css/variables.less @@ -1,21 +1,21 @@ -@font-size-small: 12px; -@line-height-computed: 20px; - -// colors -@timeline-bg: #f5f5f5; -@event-theme-color: #5cb85c; -@event-plugin-color: #428bca; -@event-core-color: #f0ad4e; -@event-info-color: #5bc0de; -@event-warning-color: #d9534f; -@progress-bg: @timeline-bg; -@progress-bar-bg: @event-info-color; - -// because admin bar is 99999 -@zindex-tooltip: 100000; -@tooltip-max-width: 300px; -@tooltip-color: #ccc; -@tooltip-bg: #464646; -@tooltip-arrow-width: 5px; -@tooltip-arrow-color: @tooltip-bg; +@font-size-small: 12px; +@line-height-computed: 20px; + +// colors +@timeline-bg: #f5f5f5; +@event-theme-color: #5cb85c; +@event-plugin-color: #428bca; +@event-core-color: #f0ad4e; +@event-info-color: #5bc0de; +@event-warning-color: #d9534f; +@progress-bg: @timeline-bg; +@progress-bar-bg: @event-info-color; + +// because admin bar is 99999 +@zindex-tooltip: 100000; +@tooltip-max-width: 300px; +@tooltip-color: #ccc; +@tooltip-bg: #464646; +@tooltip-arrow-width: 5px; +@tooltip-arrow-color: @tooltip-bg; @border-radius-base: 4px; \ No newline at end of file diff --git a/js/laps.js b/public/js/laps.js similarity index 100% rename from js/laps.js rename to public/js/laps.js diff --git a/js/laps.min.js b/public/js/laps.min.js similarity index 100% rename from js/laps.min.js rename to public/js/laps.min.js diff --git a/js/source.js b/public/js/source.js similarity index 100% rename from js/source.js rename to public/js/source.js diff --git a/src/Manager/Asset_Manager.php b/src/Manager/Asset_Manager.php index 3230797..b6f002b 100644 --- a/src/Manager/Asset_Manager.php +++ b/src/Manager/Asset_Manager.php @@ -22,8 +22,8 @@ public function __construct() { public function enqueue_scripts() { $suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min'; - wp_register_script( 'laps', plugins_url( "js/laps{$suffix}.js", dirname( __DIR__ ) ), [ 'jquery' ], '3.3.1', true ); - wp_register_style( 'laps', plugins_url( "css/laps{$suffix}.css", dirname( __DIR__ ) ) ); + wp_register_script( 'laps', plugins_url( "public/js/laps{$suffix}.js", dirname( __DIR__ ) ), [ 'jquery' ], '3.3.1', true ); + wp_register_style( 'laps', plugins_url( "public/css/laps{$suffix}.css", dirname( __DIR__ ) ) ); if ( is_admin_bar_showing() ) { wp_enqueue_script( 'laps' ); diff --git a/src/Plugin.php b/src/Plugin.php index 2f02dbd..b638fd2 100644 --- a/src/Plugin.php +++ b/src/Plugin.php @@ -28,8 +28,8 @@ public function __construct( array $values = [] ) { $laps['mustache'] = function () { return new \Mustache_Engine( [ - 'loader' => new \Mustache_Loader_FilesystemLoader( dirname( __DIR__ ) . '/views' ), - 'cache' => new Mustache_Cache_FrozenCache( dirname( __DIR__ ) . '/views/cache' ), + 'loader' => new \Mustache_Loader_FilesystemLoader( dirname( __DIR__ ) . '/src/mustache' ), + 'cache' => new Mustache_Cache_FrozenCache( dirname( __DIR__ ) . '/src/mustache/cache' ), ] ); }; diff --git a/src/mustache/cache/__Mustache_a04731de0bb9e043ecde3814b3a901bb.php b/src/mustache/cache/__Mustache_a04731de0bb9e043ecde3814b3a901bb.php new file mode 100644 index 0000000..8f89042 --- /dev/null +++ b/src/mustache/cache/__Mustache_a04731de0bb9e043ecde3814b3a901bb.php @@ -0,0 +1,111 @@ +lambdaHelper = new Mustache_LambdaHelper($this->mustache, $context); + $buffer = ''; + + // 'timelines' section + $value = $context->find('timelines'); + $buffer .= $this->sectionAdac57c50f147efcda3ea1c17e7a6c61($context, $indent, $value); + + return $buffer; + } + + private function section9f1840fed1e29fb14453f0ea2bfe30ad(Mustache_Context $context, $indent, $value) + { + $buffer = ''; + + if (!is_string($value) && is_callable($value)) { + $source = ' +
+ {{description}} +
+ '; + $result = call_user_func($value, $source, $this->lambdaHelper); + if (strpos($result, '{{') === false) { + $buffer .= $result; + } else { + $buffer .= $this->mustache + ->loadLambda((string) $result) + ->renderInternal($context); + } + } elseif (!empty($value)) { + $values = $this->isIterable($value) ? $value : array($value); + foreach ($values as $value) { + $context->push($value); + + $buffer .= $indent . '
+'; + $buffer .= $indent . ' '; + $value = $this->resolveValue($context->find('description'), $context); + $buffer .= htmlspecialchars($value, 2, 'UTF-8'); + $buffer .= ' +'; + $buffer .= $indent . '
+'; + $context->pop(); + } + } + + return $buffer; + } + + private function sectionAdac57c50f147efcda3ea1c17e7a6c61(Mustache_Context $context, $indent, $value) + { + $buffer = ''; + + if (!is_string($value) && is_callable($value)) { + $source = ' +
+ {{#.}} +
+ {{description}} +
+ {{/.}} +
+'; + $result = call_user_func($value, $source, $this->lambdaHelper); + if (strpos($result, '{{') === false) { + $buffer .= $result; + } else { + $buffer .= $this->mustache + ->loadLambda((string) $result) + ->renderInternal($context); + } + } elseif (!empty($value)) { + $values = $this->isIterable($value) ? $value : array($value); + foreach ($values as $value) { + $context->push($value); + + $buffer .= $indent . '
+'; + // '.' section + $value = $context->last('.'); + $buffer .= $this->section9f1840fed1e29fb14453f0ea2bfe30ad($context, $indent, $value); + $buffer .= $indent . '
+'; + $context->pop(); + } + } + + return $buffer; + } + +} diff --git a/views/laps.mustache b/src/mustache/laps.mustache similarity index 93% rename from views/laps.mustache rename to src/mustache/laps.mustache index c1b617d..a65130f 100644 --- a/views/laps.mustache +++ b/src/mustache/laps.mustache @@ -1,9 +1,9 @@ -{{#timelines}} -
- {{#.}} -
- {{description}} -
- {{/.}} -
+{{#timelines}} +
+ {{#.}} +
+ {{description}} +
+ {{/.}} +
{{/timelines}} \ No newline at end of file diff --git a/views/cache/__Mustache_797f2a84b9a5a7b601644494da75d61e.php b/views/cache/__Mustache_797f2a84b9a5a7b601644494da75d61e.php deleted file mode 100644 index 99ded1a..0000000 --- a/views/cache/__Mustache_797f2a84b9a5a7b601644494da75d61e.php +++ /dev/null @@ -1,292 +0,0 @@ -lambdaHelper = new Mustache_LambdaHelper($this->mustache, $context); - $buffer = ''; - $blocksContext = array(); - - $buffer .= $indent . '
-'; - // 'events' section - $value = $context->find('events'); - $buffer .= $this->section940385acb9865793d8943db356869c18($context, $indent, $value); - $buffer .= $indent . '
-'; - $buffer .= $indent . ' -'; - // 'savequeries' section - $value = $context->find('savequeries'); - $buffer .= $this->sectionB93c1beb6bc5c41326a972381b0dd94a($context, $indent, $value); - $buffer .= $indent . ' -'; - // 'savehttp' section - $value = $context->find('savehttp'); - $buffer .= $this->section238f05e38d8d133266503e545e18de7e($context, $indent, $value); - - return $buffer; - } - - private function section940385acb9865793d8943db356869c18(Mustache_Context $context, $indent, $value) - { - $buffer = ''; - $blocksContext = array(); - - if (!is_string($value) && is_callable($value)) { - $source = ' -
- {{name}} - {{duration}} ms - {{memory}} MB -
- '; - $result = call_user_func($value, $source, $this->lambdaHelper); - if (strpos($result, '{{') === false) { - $buffer .= $result; - } else { - $buffer .= $this->mustache - ->loadLambda((string) $result) - ->renderInternal($context); - } - } elseif (!empty($value)) { - $values = $this->isIterable($value) ? $value : array($value); - foreach ($values as $value) { - $context->push($value); - - $buffer .= $indent . '
-'; - $buffer .= $indent . ' '; - $value = $this->resolveValue($context->find('name'), $context); - $buffer .= htmlspecialchars($value, 2, 'UTF-8'); - $buffer .= ' - '; - $value = $this->resolveValue($context->find('duration'), $context); - $buffer .= htmlspecialchars($value, 2, 'UTF-8'); - $buffer .= ' ms - '; - $value = $this->resolveValue($context->find('memory'), $context); - $buffer .= htmlspecialchars($value, 2, 'UTF-8'); - $buffer .= ' MB -'; - $buffer .= $indent . '
-'; - $context->pop(); - } - } - - return $buffer; - } - - private function section372053fedd826e7e297c29f607930cbc(Mustache_Context $context, $indent, $value) - { - $buffer = ''; - $blocksContext = array(); - - if (!is_string($value) && is_callable($value)) { - $source = ' -
- {{sql}} -
- '; - $result = call_user_func($value, $source, $this->lambdaHelper); - if (strpos($result, '{{') === false) { - $buffer .= $result; - } else { - $buffer .= $this->mustache - ->loadLambda((string) $result) - ->renderInternal($context); - } - } elseif (!empty($value)) { - $values = $this->isIterable($value) ? $value : array($value); - foreach ($values as $value) { - $context->push($value); - - $buffer .= $indent . '
-'; - $buffer .= $indent . ' '; - $value = $this->resolveValue($context->find('sql'), $context); - $buffer .= htmlspecialchars($value, 2, 'UTF-8'); - $buffer .= ' -'; - $buffer .= $indent . '
-'; - $context->pop(); - } - } - - return $buffer; - } - - private function sectionB93c1beb6bc5c41326a972381b0dd94a(Mustache_Context $context, $indent, $value) - { - $buffer = ''; - $blocksContext = array(); - - if (!is_string($value) && is_callable($value)) { - $source = ' -
- {{#queries}} -
- {{sql}} -
- {{/queries}} -
-'; - $result = call_user_func($value, $source, $this->lambdaHelper); - if (strpos($result, '{{') === false) { - $buffer .= $result; - } else { - $buffer .= $this->mustache - ->loadLambda((string) $result) - ->renderInternal($context); - } - } elseif (!empty($value)) { - $values = $this->isIterable($value) ? $value : array($value); - foreach ($values as $value) { - $context->push($value); - - $buffer .= $indent . '
-'; - // 'queries' section - $value = $context->find('queries'); - $buffer .= $this->section372053fedd826e7e297c29f607930cbc($context, $indent, $value); - $buffer .= $indent . '
-'; - $context->pop(); - } - } - - return $buffer; - } - - private function section26362c0132f6d74333e6154005595603(Mustache_Context $context, $indent, $value) - { - $buffer = ''; - $blocksContext = array(); - - if (!is_string($value) && is_callable($value)) { - $source = ' -
- {{name}} - {{duration}} ms -
- '; - $result = call_user_func($value, $source, $this->lambdaHelper); - if (strpos($result, '{{') === false) { - $buffer .= $result; - } else { - $buffer .= $this->mustache - ->loadLambda((string) $result) - ->renderInternal($context); - } - } elseif (!empty($value)) { - $values = $this->isIterable($value) ? $value : array($value); - foreach ($values as $value) { - $context->push($value); - - $buffer .= $indent . '
-'; - $buffer .= $indent . ' '; - $value = $this->resolveValue($context->find('name'), $context); - $buffer .= htmlspecialchars($value, 2, 'UTF-8'); - $buffer .= ' - '; - $value = $this->resolveValue($context->find('duration'), $context); - $buffer .= htmlspecialchars($value, 2, 'UTF-8'); - $buffer .= ' ms -'; - $buffer .= $indent . '
-'; - $context->pop(); - } - } - - return $buffer; - } - - private function section238f05e38d8d133266503e545e18de7e(Mustache_Context $context, $indent, $value) - { - $buffer = ''; - $blocksContext = array(); - - if (!is_string($value) && is_callable($value)) { - $source = ' -
- {{#http}} -
- {{name}} - {{duration}} ms -
- {{/http}} -
-'; - $result = call_user_func($value, $source, $this->lambdaHelper); - if (strpos($result, '{{') === false) { - $buffer .= $result; - } else { - $buffer .= $this->mustache - ->loadLambda((string) $result) - ->renderInternal($context); - } - } elseif (!empty($value)) { - $values = $this->isIterable($value) ? $value : array($value); - foreach ($values as $value) { - $context->push($value); - - $buffer .= $indent . '
-'; - // 'http' section - $value = $context->find('http'); - $buffer .= $this->section26362c0132f6d74333e6154005595603($context, $indent, $value); - $buffer .= $indent . '
-'; - $context->pop(); - } - } - - return $buffer; - } - -}