mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-16 22:39:52 +08:00
Merge pull request #2622 branch 'ext-codestyle-fix' of https://github.com/AlexGx/yii2 into code-style
* 'ext-codestyle-fix' of https://github.com/AlexGx/yii2: fix php5.4 array syntax many phpcs fixes fix phpDoc LuaScriptBuilder build @throws Conflicts: extensions/apidoc/commands/RenderController.php extensions/apidoc/models/BaseDoc.php extensions/apidoc/templates/BaseRenderer.php extensions/apidoc/templates/bootstrap/Renderer.php extensions/apidoc/templates/bootstrap/layouts/guide.php extensions/apidoc/templates/bootstrap/layouts/main.php extensions/apidoc/templates/html/Renderer.php extensions/apidoc/templates/offline/Renderer.php extensions/apidoc/templates/offline/assets/AssetBundle.php extensions/apidoc/templates/offline/views/index.php
This commit is contained in:
@@ -15,7 +15,7 @@ $composerAutoload = [
|
|||||||
__DIR__ . '/../../autoload.php', // script is installed as a composer binary
|
__DIR__ . '/../../autoload.php', // script is installed as a composer binary
|
||||||
];
|
];
|
||||||
$vendorPath = null;
|
$vendorPath = null;
|
||||||
foreach($composerAutoload as $autoload) {
|
foreach ($composerAutoload as $autoload) {
|
||||||
if (file_exists($autoload)) {
|
if (file_exists($autoload)) {
|
||||||
require($autoload);
|
require($autoload);
|
||||||
$vendorPath = dirname($autoload);
|
$vendorPath = dirname($autoload);
|
||||||
@@ -27,7 +27,7 @@ $yiiDirs = [
|
|||||||
__DIR__ . '/vendor/yiisoft/yii2', // standalone with "composer install" run
|
__DIR__ . '/vendor/yiisoft/yii2', // standalone with "composer install" run
|
||||||
__DIR__ . '/../../yiisoft/yii2', // script is installed as a composer binary
|
__DIR__ . '/../../yiisoft/yii2', // script is installed as a composer binary
|
||||||
];
|
];
|
||||||
foreach($yiiDirs as $dir) {
|
foreach ($yiiDirs as $dir) {
|
||||||
if (file_exists($dir . '/Yii.php')) {
|
if (file_exists($dir . '/Yii.php')) {
|
||||||
require($dir . '/Yii.php');
|
require($dir . '/Yii.php');
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ class ApiMarkdown extends GithubMarkdown
|
|||||||
if (!empty($language)) {
|
if (!empty($language)) {
|
||||||
$block['language'] = $language;
|
$block['language'] = $language;
|
||||||
}
|
}
|
||||||
for($i = $current + 1, $count = count($lines); $i < $count; $i++) {
|
for ($i = $current + 1, $count = count($lines); $i < $count; $i++) {
|
||||||
if (rtrim($line = $lines[$i]) !== $fence) {
|
if (rtrim($line = $lines[$i]) !== $fence) {
|
||||||
$block['content'][] = $line;
|
$block['content'][] = $line;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ class BaseDoc extends Object
|
|||||||
$this->phpDocContext = $docblock->getContext();
|
$this->phpDocContext = $docblock->getContext();
|
||||||
|
|
||||||
$this->tags = $docblock->getTags();
|
$this->tags = $docblock->getTags();
|
||||||
foreach($this->tags as $i => $tag) {
|
foreach ($this->tags as $i => $tag) {
|
||||||
if ($tag instanceof SinceTag) {
|
if ($tag instanceof SinceTag) {
|
||||||
$this->since = $tag->getVersion();
|
$this->since = $tag->getVersion();
|
||||||
unset($this->tags[$i]);
|
unset($this->tags[$i]);
|
||||||
|
|||||||
@@ -45,12 +45,12 @@ class ClassDoc extends TypeDoc
|
|||||||
if (($subject = parent::findSubject($subjectName)) !== null) {
|
if (($subject = parent::findSubject($subjectName)) !== null) {
|
||||||
return $subject;
|
return $subject;
|
||||||
}
|
}
|
||||||
foreach($this->events as $name => $event) {
|
foreach ($this->events as $name => $event) {
|
||||||
if ($subjectName == $name) {
|
if ($subjectName == $name) {
|
||||||
return $event;
|
return $event;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
foreach($this->constants as $name => $constant) {
|
foreach ($this->constants as $name => $constant) {
|
||||||
if ($subjectName == $name) {
|
if ($subjectName == $name) {
|
||||||
return $constant;
|
return $constant;
|
||||||
}
|
}
|
||||||
@@ -64,7 +64,7 @@ class ClassDoc extends TypeDoc
|
|||||||
public function getNativeEvents()
|
public function getNativeEvents()
|
||||||
{
|
{
|
||||||
$events = [];
|
$events = [];
|
||||||
foreach($this->events as $name => $event) {
|
foreach ($this->events as $name => $event) {
|
||||||
if ($event->definedBy != $this->name) {
|
if ($event->definedBy != $this->name) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -93,13 +93,13 @@ class ClassDoc extends TypeDoc
|
|||||||
$this->isAbstract = $reflector->isAbstract();
|
$this->isAbstract = $reflector->isAbstract();
|
||||||
$this->isFinal = $reflector->isFinal();
|
$this->isFinal = $reflector->isFinal();
|
||||||
|
|
||||||
foreach($reflector->getInterfaces() as $interface) {
|
foreach ($reflector->getInterfaces() as $interface) {
|
||||||
$this->interfaces[] = ltrim($interface, '\\');
|
$this->interfaces[] = ltrim($interface, '\\');
|
||||||
}
|
}
|
||||||
foreach($reflector->getTraits() as $trait) {
|
foreach ($reflector->getTraits() as $trait) {
|
||||||
$this->traits[] = ltrim($trait, '\\');
|
$this->traits[] = ltrim($trait, '\\');
|
||||||
}
|
}
|
||||||
foreach($reflector->getConstants() as $constantReflector) {
|
foreach ($reflector->getConstants() as $constantReflector) {
|
||||||
$docblock = $constantReflector->getDocBlock();
|
$docblock = $constantReflector->getDocBlock();
|
||||||
if ($docblock !== null && count($docblock->getTagsByName('event')) > 0) {
|
if ($docblock !== null && count($docblock->getTagsByName('event')) > 0) {
|
||||||
$event = new EventDoc($constantReflector);
|
$event = new EventDoc($constantReflector);
|
||||||
|
|||||||
@@ -57,15 +57,15 @@ class Context extends Component
|
|||||||
$reflection = new FileReflector($fileName, true);
|
$reflection = new FileReflector($fileName, true);
|
||||||
$reflection->process();
|
$reflection->process();
|
||||||
|
|
||||||
foreach($reflection->getClasses() as $class) {
|
foreach ($reflection->getClasses() as $class) {
|
||||||
$class = new ClassDoc($class, $this, ['sourceFile' => $fileName]);
|
$class = new ClassDoc($class, $this, ['sourceFile' => $fileName]);
|
||||||
$this->classes[$class->name] = $class;
|
$this->classes[$class->name] = $class;
|
||||||
}
|
}
|
||||||
foreach($reflection->getInterfaces() as $interface) {
|
foreach ($reflection->getInterfaces() as $interface) {
|
||||||
$interface = new InterfaceDoc($interface, $this, ['sourceFile' => $fileName]);
|
$interface = new InterfaceDoc($interface, $this, ['sourceFile' => $fileName]);
|
||||||
$this->interfaces[$interface->name] = $interface;
|
$this->interfaces[$interface->name] = $interface;
|
||||||
}
|
}
|
||||||
foreach($reflection->getTraits() as $trait) {
|
foreach ($reflection->getTraits() as $trait) {
|
||||||
$trait = new TraitDoc($trait, $this, ['sourceFile' => $fileName]);
|
$trait = new TraitDoc($trait, $this, ['sourceFile' => $fileName]);
|
||||||
$this->traits[$trait->name] = $trait;
|
$this->traits[$trait->name] = $trait;
|
||||||
}
|
}
|
||||||
@@ -74,7 +74,7 @@ class Context extends Component
|
|||||||
public function updateReferences()
|
public function updateReferences()
|
||||||
{
|
{
|
||||||
// update all subclass references
|
// update all subclass references
|
||||||
foreach($this->classes as $class) {
|
foreach ($this->classes as $class) {
|
||||||
$className = $class->name;
|
$className = $class->name;
|
||||||
while (isset($this->classes[$class->parentClass])) {
|
while (isset($this->classes[$class->parentClass])) {
|
||||||
$class = $this->classes[$class->parentClass];
|
$class = $this->classes[$class->parentClass];
|
||||||
@@ -82,12 +82,12 @@ class Context extends Component
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// update interfaces of subclasses
|
// update interfaces of subclasses
|
||||||
foreach($this->classes as $class) {
|
foreach ($this->classes as $class) {
|
||||||
$this->updateSubclassInferfacesTraits($class);
|
$this->updateSubclassInferfacesTraits($class);
|
||||||
}
|
}
|
||||||
// update implementedBy and usedBy for interfaces and traits
|
// update implementedBy and usedBy for interfaces and traits
|
||||||
foreach($this->classes as $class) {
|
foreach ($this->classes as $class) {
|
||||||
foreach($class->traits as $trait) {
|
foreach ($class->traits as $trait) {
|
||||||
if (isset($this->traits[$trait])) {
|
if (isset($this->traits[$trait])) {
|
||||||
$trait = $this->traits[$trait];
|
$trait = $this->traits[$trait];
|
||||||
$trait->usedBy[] = $class->name;
|
$trait->usedBy[] = $class->name;
|
||||||
@@ -95,12 +95,12 @@ class Context extends Component
|
|||||||
$class->methods = array_merge($trait->methods, $class->methods);
|
$class->methods = array_merge($trait->methods, $class->methods);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
foreach($class->interfaces as $interface) {
|
foreach ($class->interfaces as $interface) {
|
||||||
if (isset($this->interfaces[$interface])) {
|
if (isset($this->interfaces[$interface])) {
|
||||||
$this->interfaces[$interface]->implementedBy[] = $class->name;
|
$this->interfaces[$interface]->implementedBy[] = $class->name;
|
||||||
if ($class->isAbstract) {
|
if ($class->isAbstract) {
|
||||||
// add not implemented interface methods
|
// add not implemented interface methods
|
||||||
foreach($this->interfaces[$interface]->methods as $method) {
|
foreach ($this->interfaces[$interface]->methods as $method) {
|
||||||
if (!isset($class->methods[$method->name])) {
|
if (!isset($class->methods[$method->name])) {
|
||||||
$class->methods[$method->name] = $method;
|
$class->methods[$method->name] = $method;
|
||||||
}
|
}
|
||||||
@@ -114,11 +114,11 @@ class Context extends Component
|
|||||||
$this->inheritDocs($class);
|
$this->inheritDocs($class);
|
||||||
}
|
}
|
||||||
// inherit properties, methods, contants and events to subclasses
|
// inherit properties, methods, contants and events to subclasses
|
||||||
foreach($this->classes as $class) {
|
foreach ($this->classes as $class) {
|
||||||
$this->updateSubclassInheritance($class);
|
$this->updateSubclassInheritance($class);
|
||||||
}
|
}
|
||||||
// add properties from getters and setters
|
// add properties from getters and setters
|
||||||
foreach($this->classes as $class) {
|
foreach ($this->classes as $class) {
|
||||||
$this->handlePropertyFeature($class);
|
$this->handlePropertyFeature($class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -131,7 +131,7 @@ class Context extends Component
|
|||||||
*/
|
*/
|
||||||
protected function updateSubclassInferfacesTraits($class)
|
protected function updateSubclassInferfacesTraits($class)
|
||||||
{
|
{
|
||||||
foreach($class->subclasses as $subclass) {
|
foreach ($class->subclasses as $subclass) {
|
||||||
$subclass = $this->classes[$subclass];
|
$subclass = $this->classes[$subclass];
|
||||||
$subclass->interfaces = array_unique(array_merge($subclass->interfaces, $class->interfaces));
|
$subclass->interfaces = array_unique(array_merge($subclass->interfaces, $class->interfaces));
|
||||||
$subclass->traits = array_unique(array_merge($subclass->traits, $class->traits));
|
$subclass->traits = array_unique(array_merge($subclass->traits, $class->traits));
|
||||||
@@ -145,7 +145,7 @@ class Context extends Component
|
|||||||
*/
|
*/
|
||||||
protected function updateSubclassInheritance($class)
|
protected function updateSubclassInheritance($class)
|
||||||
{
|
{
|
||||||
foreach($class->subclasses as $subclass) {
|
foreach ($class->subclasses as $subclass) {
|
||||||
$subclass = $this->classes[$subclass];
|
$subclass = $this->classes[$subclass];
|
||||||
$subclass->events = array_merge($class->events, $subclass->events);
|
$subclass->events = array_merge($class->events, $subclass->events);
|
||||||
$subclass->constants = array_merge($class->constants, $subclass->constants);
|
$subclass->constants = array_merge($class->constants, $subclass->constants);
|
||||||
@@ -203,7 +203,7 @@ class Context extends Component
|
|||||||
if (!$this->isSubclassOf($class, 'yii\base\Object')) {
|
if (!$this->isSubclassOf($class, 'yii\base\Object')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
foreach($class->getPublicMethods() as $name => $method) {
|
foreach ($class->getPublicMethods() as $name => $method) {
|
||||||
if ($method->isStatic) {
|
if ($method->isStatic) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -275,7 +275,7 @@ class Context extends Component
|
|||||||
*/
|
*/
|
||||||
private function paramsOptional($method, $number = 0)
|
private function paramsOptional($method, $number = 0)
|
||||||
{
|
{
|
||||||
foreach($method->params as $param) {
|
foreach ($method->params as $param) {
|
||||||
if (!$param->isOptional && $number-- <= 0) {
|
if (!$param->isOptional && $number-- <= 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -289,7 +289,7 @@ class Context extends Component
|
|||||||
*/
|
*/
|
||||||
private function getFirstNotOptionalParameter($method)
|
private function getFirstNotOptionalParameter($method)
|
||||||
{
|
{
|
||||||
foreach($method->params as $param) {
|
foreach ($method->params as $param) {
|
||||||
if (!$param->isOptional) {
|
if (!$param->isOptional) {
|
||||||
return $param;
|
return $param;
|
||||||
}
|
}
|
||||||
@@ -309,7 +309,7 @@ class Context extends Component
|
|||||||
if ($classA->name == $classB) {
|
if ($classA->name == $classB) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
while($classA->parentClass !== null && isset($this->classes[$classA->parentClass])) {
|
while ($classA->parentClass !== null && isset($this->classes[$classA->parentClass])) {
|
||||||
$classA = $this->classes[$classA->parentClass];
|
$classA = $this->classes[$classA->parentClass];
|
||||||
if ($classA->name == $classB) {
|
if ($classA->name == $classB) {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ class EventDoc extends ConstDoc
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach($this->tags as $i => $tag) {
|
foreach ($this->tags as $i => $tag) {
|
||||||
if ($tag->getName() == 'event') {
|
if ($tag->getName() == 'event') {
|
||||||
$eventTag = new ReturnTag('event', $tag->getContent(), $tag->getDocBlock(), $tag->getLocation());
|
$eventTag = new ReturnTag('event', $tag->getContent(), $tag->getDocBlock(), $tag->getLocation());
|
||||||
$this->type = $eventTag->getType();
|
$this->type = $eventTag->getType();
|
||||||
|
|||||||
@@ -45,17 +45,17 @@ class FunctionDoc extends BaseDoc
|
|||||||
|
|
||||||
$this->isReturnByReference = $reflector->isByRef();
|
$this->isReturnByReference = $reflector->isByRef();
|
||||||
|
|
||||||
foreach($reflector->getArguments() as $arg) {
|
foreach ($reflector->getArguments() as $arg) {
|
||||||
$arg = new ParamDoc($arg, $context, ['sourceFile' => $this->sourceFile]);
|
$arg = new ParamDoc($arg, $context, ['sourceFile' => $this->sourceFile]);
|
||||||
$this->params[$arg->name] = $arg;
|
$this->params[$arg->name] = $arg;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach($this->tags as $i => $tag) {
|
foreach ($this->tags as $i => $tag) {
|
||||||
if ($tag instanceof ThrowsTag) {
|
if ($tag instanceof ThrowsTag) {
|
||||||
$this->exceptions[$tag->getType()] = $tag->getDescription();
|
$this->exceptions[$tag->getType()] = $tag->getDescription();
|
||||||
unset($this->tags[$i]);
|
unset($this->tags[$i]);
|
||||||
} elseif ($tag instanceof PropertyTag) {
|
} elseif ($tag instanceof PropertyTag) {
|
||||||
// ignore property tag
|
// ignore property tag
|
||||||
} elseif ($tag instanceof ParamTag) {
|
} elseif ($tag instanceof ParamTag) {
|
||||||
$paramName = $tag->getVariableName();
|
$paramName = $tag->getVariableName();
|
||||||
if (!isset($this->params[$paramName]) && $context !== null) {
|
if (!isset($this->params[$paramName]) && $context !== null) {
|
||||||
|
|||||||
@@ -33,11 +33,11 @@ class InterfaceDoc extends TypeDoc
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach($reflector->getParentInterfaces() as $interface) {
|
foreach ($reflector->getParentInterfaces() as $interface) {
|
||||||
$this->parentInterfaces[] = ltrim($interface, '\\');
|
$this->parentInterfaces[] = ltrim($interface, '\\');
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach($this->methods as $method) {
|
foreach ($this->methods as $method) {
|
||||||
$method->isAbstract = true;
|
$method->isAbstract = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ class PropertyDoc extends BaseDoc
|
|||||||
$this->defaultValue = PrettyPrinter::getRepresentationOfValue($reflector->getNode()->default);
|
$this->defaultValue = PrettyPrinter::getRepresentationOfValue($reflector->getNode()->default);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach($this->tags as $tag) {
|
foreach ($this->tags as $tag) {
|
||||||
if ($tag instanceof VarTag) {
|
if ($tag instanceof VarTag) {
|
||||||
$this->type = $tag->getType();
|
$this->type = $tag->getType();
|
||||||
$this->types = $tag->getTypes();
|
$this->types = $tag->getTypes();
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ class TraitDoc extends TypeDoc
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach($reflector->getTraits() as $trait) {
|
foreach ($reflector->getTraits() as $trait) {
|
||||||
$this->traits[] = ltrim($trait, '\\');
|
$this->traits[] = ltrim($trait, '\\');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ class TypeDoc extends BaseDoc
|
|||||||
public function findSubject($subjectName)
|
public function findSubject($subjectName)
|
||||||
{
|
{
|
||||||
if ($subjectName[0] != '$') {
|
if ($subjectName[0] != '$') {
|
||||||
foreach($this->methods as $name => $method) {
|
foreach ($this->methods as $name => $method) {
|
||||||
if (rtrim($subjectName, '()') == $name) {
|
if (rtrim($subjectName, '()') == $name) {
|
||||||
return $method;
|
return $method;
|
||||||
}
|
}
|
||||||
@@ -53,7 +53,7 @@ class TypeDoc extends BaseDoc
|
|||||||
if ($this->properties === null) {
|
if ($this->properties === null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
foreach($this->properties as $name => $property) {
|
foreach ($this->properties as $name => $property) {
|
||||||
if (ltrim($subjectName, '$') == ltrim($name, '$')) {
|
if (ltrim($subjectName, '$') == ltrim($name, '$')) {
|
||||||
return $property;
|
return $property;
|
||||||
}
|
}
|
||||||
@@ -93,7 +93,7 @@ class TypeDoc extends BaseDoc
|
|||||||
private function getFilteredMethods($visibility = null, $definedBy = null)
|
private function getFilteredMethods($visibility = null, $definedBy = null)
|
||||||
{
|
{
|
||||||
$methods = [];
|
$methods = [];
|
||||||
foreach($this->methods as $name => $method) {
|
foreach ($this->methods as $name => $method) {
|
||||||
if ($visibility !== null && $method->visibility != $visibility) {
|
if ($visibility !== null && $method->visibility != $visibility) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -140,7 +140,7 @@ class TypeDoc extends BaseDoc
|
|||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
$properties = [];
|
$properties = [];
|
||||||
foreach($this->properties as $name => $property) {
|
foreach ($this->properties as $name => $property) {
|
||||||
if ($visibility !== null && $property->visibility != $visibility) {
|
if ($visibility !== null && $property->visibility != $visibility) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -167,14 +167,14 @@ class TypeDoc extends BaseDoc
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach($this->tags as $i => $tag) {
|
foreach ($this->tags as $i => $tag) {
|
||||||
if ($tag instanceof AuthorTag) {
|
if ($tag instanceof AuthorTag) {
|
||||||
$this->authors[$tag->getAuthorName()] = $tag->getAuthorEmail();
|
$this->authors[$tag->getAuthorName()] = $tag->getAuthorEmail();
|
||||||
unset($this->tags[$i]);
|
unset($this->tags[$i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach($reflector->getProperties() as $propertyReflector) {
|
foreach ($reflector->getProperties() as $propertyReflector) {
|
||||||
if ($propertyReflector->getVisibility() != 'private') {
|
if ($propertyReflector->getVisibility() != 'private') {
|
||||||
$property = new PropertyDoc($propertyReflector, $context, ['sourceFile' => $this->sourceFile]);
|
$property = new PropertyDoc($propertyReflector, $context, ['sourceFile' => $this->sourceFile]);
|
||||||
$property->definedBy = $this->name;
|
$property->definedBy = $this->name;
|
||||||
@@ -182,7 +182,7 @@ class TypeDoc extends BaseDoc
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach($reflector->getMethods() as $methodReflector) {
|
foreach ($reflector->getMethods() as $methodReflector) {
|
||||||
if ($methodReflector->getVisibility() != 'private') {
|
if ($methodReflector->getVisibility() != 'private') {
|
||||||
$method = new MethodDoc($methodReflector, $context, ['sourceFile' => $this->sourceFile]);
|
$method = new MethodDoc($methodReflector, $context, ['sourceFile' => $this->sourceFile]);
|
||||||
$method->definedBy = $this->name;
|
$method->definedBy = $this->name;
|
||||||
|
|||||||
@@ -153,7 +153,7 @@ class SideNavWidget extends \yii\bootstrap\Widget
|
|||||||
$label .= ' ' . Html::tag('b', '', ['class' => 'caret']);
|
$label .= ' ' . Html::tag('b', '', ['class' => 'caret']);
|
||||||
if (is_array($items)) {
|
if (is_array($items)) {
|
||||||
if ($active === false) {
|
if ($active === false) {
|
||||||
foreach($items as $subItem) {
|
foreach ($items as $subItem) {
|
||||||
if (isset($subItem['active']) && $subItem['active']) {
|
if (isset($subItem['active']) && $subItem['active']) {
|
||||||
$active = true;
|
$active = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace yii\apidoc\templates\bootstrap\assets;
|
namespace yii\apidoc\templates\bootstrap\assets;
|
||||||
|
|
||||||
use yii\web\View;
|
use yii\web\View;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ $this->beginContent('@yii/apidoc/templates/bootstrap/layouts/main.php'); ?>
|
|||||||
$types = $renderer->getNavTypes(isset($type) ? $type : null, $types);
|
$types = $renderer->getNavTypes(isset($type) ? $type : null, $types);
|
||||||
ksort($types);
|
ksort($types);
|
||||||
$nav = [];
|
$nav = [];
|
||||||
foreach($types as $i=>$class) {
|
foreach ($types as $i => $class) {
|
||||||
$namespace = $class->namespace;
|
$namespace = $class->namespace;
|
||||||
if (empty($namespace)) {
|
if (empty($namespace)) {
|
||||||
$namespace = 'Not namespaced classes';
|
$namespace = 'Not namespaced classes';
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ $this->beginContent('@yii/apidoc/templates/bootstrap/layouts/main.php'); ?>
|
|||||||
'url' => $this->context->generateGuideUrl('index.md'),
|
'url' => $this->context->generateGuideUrl('index.md'),
|
||||||
'active' => isset($currentFile) && (basename($currentFile) == 'index.md'),
|
'active' => isset($currentFile) && (basename($currentFile) == 'index.md'),
|
||||||
];
|
];
|
||||||
foreach($headlines as $file => $headline) {
|
foreach ($headlines as $file => $headline) {
|
||||||
$nav[] = [
|
$nav[] = [
|
||||||
'label' => $headline,
|
'label' => $headline,
|
||||||
'url' => $this->context->generateGuideUrl($file),
|
'url' => $this->context->generateGuideUrl($file),
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ $this->beginPage();
|
|||||||
if (!empty($this->context->extensions))
|
if (!empty($this->context->extensions))
|
||||||
{
|
{
|
||||||
$extItems = [];
|
$extItems = [];
|
||||||
foreach($this->context->extensions as $ext) {
|
foreach ($this->context->extensions as $ext) {
|
||||||
$extItems[] = [
|
$extItems[] = [
|
||||||
'label' => $ext,
|
'label' => $ext,
|
||||||
'url' => "./ext-{$ext}-index.html",
|
'url' => "./ext-{$ext}-index.html",
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
use yii\apidoc\models\ClassDoc;
|
use yii\apidoc\models\ClassDoc;
|
||||||
use yii\apidoc\models\InterfaceDoc;
|
use yii\apidoc\models\InterfaceDoc;
|
||||||
use yii\apidoc\models\TraitDoc;
|
use yii\apidoc\models\TraitDoc;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var ClassDoc[]|InterfaceDoc[]|TraitDoc[] $types
|
* @var ClassDoc[]|InterfaceDoc[]|TraitDoc[] $types
|
||||||
* @var yii\web\View $this
|
* @var yii\web\View $this
|
||||||
@@ -29,7 +30,7 @@ if (isset($readme)) {
|
|||||||
</tr>
|
</tr>
|
||||||
<?php
|
<?php
|
||||||
ksort($types);
|
ksort($types);
|
||||||
foreach($types as $i=>$class):
|
foreach($types as $i => $class):
|
||||||
?>
|
?>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?= $renderer->createTypeLink($class, $class, $class->name) ?></td>
|
<td><?= $renderer->createTypeLink($class, $class, $class->name) ?></td>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
$see = [];
|
$see = [];
|
||||||
foreach($object->tags as $tag) {
|
foreach ($object->tags as $tag) {
|
||||||
/** @var $tag phpDocumentor\Reflection\DocBlock\Tag\SeeTag */
|
/** @var $tag phpDocumentor\Reflection\DocBlock\Tag\SeeTag */
|
||||||
if (get_class($tag) == 'phpDocumentor\Reflection\DocBlock\Tag\SeeTag') {
|
if (get_class($tag) == 'phpDocumentor\Reflection\DocBlock\Tag\SeeTag') {
|
||||||
$ref = $tag->getReference();
|
$ref = $tag->getReference();
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ use yii\apidoc\helpers\ApiMarkdown;
|
|||||||
use yii\apidoc\models\ClassDoc;
|
use yii\apidoc\models\ClassDoc;
|
||||||
use yii\apidoc\models\InterfaceDoc;
|
use yii\apidoc\models\InterfaceDoc;
|
||||||
use yii\apidoc\models\TraitDoc;
|
use yii\apidoc\models\TraitDoc;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var ClassDoc|InterfaceDoc|TraitDoc $type
|
* @var ClassDoc|InterfaceDoc|TraitDoc $type
|
||||||
* @var yii\web\View $this
|
* @var yii\web\View $this
|
||||||
@@ -84,8 +85,8 @@ $renderer = $this->context;
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a name="properties"></a>
|
<a name="properties"></a>
|
||||||
<?= $this->render('@yii/apidoc/templates/html/views/propertySummary', ['type' => $type,'protected' => false]) ?>
|
<?= $this->render('@yii/apidoc/templates/html/views/propertySummary', ['type' => $type, 'protected' => false]) ?>
|
||||||
<?= $this->render('@yii/apidoc/templates/html/views/propertySummary', ['type' => $type,'protected' => true]) ?>
|
<?= $this->render('@yii/apidoc/templates/html/views/propertySummary', ['type' => $type, 'protected' => true]) ?>
|
||||||
|
|
||||||
<a name="methods"></a>
|
<a name="methods"></a>
|
||||||
<?= $this->render('@yii/apidoc/templates/html/views/methodSummary', ['type' => $type, 'protected' => false]) ?>
|
<?= $this->render('@yii/apidoc/templates/html/views/methodSummary', ['type' => $type, 'protected' => false]) ?>
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace yii\apidoc\templates\online;
|
namespace yii\apidoc\templates\online;
|
||||||
|
|
||||||
use yii\apidoc\models\Context;
|
use yii\apidoc\models\Context;
|
||||||
use yii\apidoc\models\TypeDoc;
|
use yii\apidoc\models\TypeDoc;
|
||||||
use yii\console\Controller;
|
use yii\console\Controller;
|
||||||
@@ -36,7 +37,7 @@ class ApiRenderer extends \yii\apidoc\templates\html\ApiRenderer
|
|||||||
}
|
}
|
||||||
$packages = [];
|
$packages = [];
|
||||||
$notNamespaced = [];
|
$notNamespaced = [];
|
||||||
foreach(array_merge($context->classes, $context->interfaces, $context->traits) as $type) {
|
foreach (array_merge($context->classes, $context->interfaces, $context->traits) as $type) {
|
||||||
/** @var TypeDoc $type */
|
/** @var TypeDoc $type */
|
||||||
if (empty($type->namespace)) {
|
if (empty($type->namespace)) {
|
||||||
$notNamespaced[] = str_replace('\\', '-', $type->name);
|
$notNamespaced[] = str_replace('\\', '-', $type->name);
|
||||||
@@ -46,7 +47,7 @@ class ApiRenderer extends \yii\apidoc\templates\html\ApiRenderer
|
|||||||
}
|
}
|
||||||
ksort($packages);
|
ksort($packages);
|
||||||
$packages = array_merge(['Not namespaced' => $notNamespaced], $packages);
|
$packages = array_merge(['Not namespaced' => $notNamespaced], $packages);
|
||||||
foreach($packages as $name => $classes) {
|
foreach ($packages as $name => $classes) {
|
||||||
sort($packages[$name]);
|
sort($packages[$name]);
|
||||||
}
|
}
|
||||||
file_put_contents($targetDir . '/packages.txt', serialize($packages));
|
file_put_contents($targetDir . '/packages.txt', serialize($packages));
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
use yii\apidoc\models\ClassDoc;
|
use yii\apidoc\models\ClassDoc;
|
||||||
use yii\apidoc\models\InterfaceDoc;
|
use yii\apidoc\models\InterfaceDoc;
|
||||||
use yii\apidoc\models\TraitDoc;
|
use yii\apidoc\models\TraitDoc;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var ClassDoc[]|InterfaceDoc[]|TraitDoc[] $types
|
* @var ClassDoc[]|InterfaceDoc[]|TraitDoc[] $types
|
||||||
* @var yii\web\View $this
|
* @var yii\web\View $this
|
||||||
@@ -22,7 +23,7 @@ use yii\apidoc\models\TraitDoc;
|
|||||||
</tr>
|
</tr>
|
||||||
<?php
|
<?php
|
||||||
ksort($types);
|
ksort($types);
|
||||||
foreach($types as $i=>$class):
|
foreach($types as $i => $class):
|
||||||
?>
|
?>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?= $this->context->typeLink($class, $class->name) ?></td>
|
<td><?= $this->context->typeLink($class, $class->name) ?></td>
|
||||||
|
|||||||
@@ -175,7 +175,7 @@ class OAuth1 extends BaseOAuth
|
|||||||
}
|
}
|
||||||
case 'POST': {
|
case 'POST': {
|
||||||
$curlOptions[CURLOPT_POST] = true;
|
$curlOptions[CURLOPT_POST] = true;
|
||||||
if (!empty($params)){
|
if (!empty($params)) {
|
||||||
$curlOptions[CURLOPT_POSTFIELDS] = $params;
|
$curlOptions[CURLOPT_POSTFIELDS] = $params;
|
||||||
}
|
}
|
||||||
$authorizationHeader = $this->composeAuthorizationHeader($params);
|
$authorizationHeader = $this->composeAuthorizationHeader($params);
|
||||||
|
|||||||
@@ -58,14 +58,16 @@ class OAuthToken extends Object
|
|||||||
/**
|
/**
|
||||||
* @param string $expireDurationParamKey expire duration param key.
|
* @param string $expireDurationParamKey expire duration param key.
|
||||||
*/
|
*/
|
||||||
public function setExpireDurationParamKey($expireDurationParamKey) {
|
public function setExpireDurationParamKey($expireDurationParamKey)
|
||||||
|
{
|
||||||
$this->_expireDurationParamKey = $expireDurationParamKey;
|
$this->_expireDurationParamKey = $expireDurationParamKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string expire duration param key.
|
* @return string expire duration param key.
|
||||||
*/
|
*/
|
||||||
public function getExpireDurationParamKey() {
|
public function getExpireDurationParamKey()
|
||||||
|
{
|
||||||
if ($this->_expireDurationParamKey === null) {
|
if ($this->_expireDurationParamKey === null) {
|
||||||
$this->_expireDurationParamKey = $this->defaultExpireDurationParamKey();
|
$this->_expireDurationParamKey = $this->defaultExpireDurationParamKey();
|
||||||
}
|
}
|
||||||
@@ -75,14 +77,16 @@ class OAuthToken extends Object
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function getParams() {
|
public function getParams()
|
||||||
|
{
|
||||||
return $this->_params;
|
return $this->_params;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array $params
|
* @param array $params
|
||||||
*/
|
*/
|
||||||
public function setParams(array $params) {
|
public function setParams(array $params)
|
||||||
|
{
|
||||||
$this->_params = $params;
|
$this->_params = $params;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,7 +95,8 @@ class OAuthToken extends Object
|
|||||||
* @param string $name param name.
|
* @param string $name param name.
|
||||||
* @param mixed $value param value,
|
* @param mixed $value param value,
|
||||||
*/
|
*/
|
||||||
public function setParam($name, $value) {
|
public function setParam($name, $value)
|
||||||
|
{
|
||||||
$this->_params[$name] = $value;
|
$this->_params[$name] = $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -100,7 +105,8 @@ class OAuthToken extends Object
|
|||||||
* @param string $name param name.
|
* @param string $name param name.
|
||||||
* @return mixed param value.
|
* @return mixed param value.
|
||||||
*/
|
*/
|
||||||
public function getParam($name) {
|
public function getParam($name)
|
||||||
|
{
|
||||||
return isset($this->_params[$name]) ? $this->_params[$name] : null;
|
return isset($this->_params[$name]) ? $this->_params[$name] : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -109,7 +115,8 @@ class OAuthToken extends Object
|
|||||||
* @param string $token token value.
|
* @param string $token token value.
|
||||||
* @return static self reference.
|
* @return static self reference.
|
||||||
*/
|
*/
|
||||||
public function setToken($token) {
|
public function setToken($token)
|
||||||
|
{
|
||||||
$this->setParam($this->tokenParamKey, $token);
|
$this->setParam($this->tokenParamKey, $token);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -117,7 +124,8 @@ class OAuthToken extends Object
|
|||||||
* Returns token value.
|
* Returns token value.
|
||||||
* @return string token value.
|
* @return string token value.
|
||||||
*/
|
*/
|
||||||
public function getToken() {
|
public function getToken()
|
||||||
|
{
|
||||||
return $this->getParam($this->tokenParamKey);
|
return $this->getParam($this->tokenParamKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -125,7 +133,8 @@ class OAuthToken extends Object
|
|||||||
* Sets the token secret value.
|
* Sets the token secret value.
|
||||||
* @param string $tokenSecret token secret.
|
* @param string $tokenSecret token secret.
|
||||||
*/
|
*/
|
||||||
public function setTokenSecret($tokenSecret) {
|
public function setTokenSecret($tokenSecret)
|
||||||
|
{
|
||||||
$this->setParam($this->tokenSecretParamKey, $tokenSecret);
|
$this->setParam($this->tokenSecretParamKey, $tokenSecret);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,7 +142,8 @@ class OAuthToken extends Object
|
|||||||
* Returns the token secret value.
|
* Returns the token secret value.
|
||||||
* @return string token secret value.
|
* @return string token secret value.
|
||||||
*/
|
*/
|
||||||
public function getTokenSecret() {
|
public function getTokenSecret()
|
||||||
|
{
|
||||||
return $this->getParam($this->tokenSecretParamKey);
|
return $this->getParam($this->tokenSecretParamKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -141,7 +151,8 @@ class OAuthToken extends Object
|
|||||||
* Sets token expire duration.
|
* Sets token expire duration.
|
||||||
* @param string $expireDuration token expiration duration.
|
* @param string $expireDuration token expiration duration.
|
||||||
*/
|
*/
|
||||||
public function setExpireDuration($expireDuration) {
|
public function setExpireDuration($expireDuration)
|
||||||
|
{
|
||||||
$this->setParam($this->getExpireDurationParamKey(), $expireDuration);
|
$this->setParam($this->getExpireDurationParamKey(), $expireDuration);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -149,7 +160,8 @@ class OAuthToken extends Object
|
|||||||
* Returns the token expiration duration.
|
* Returns the token expiration duration.
|
||||||
* @return integer token expiration duration.
|
* @return integer token expiration duration.
|
||||||
*/
|
*/
|
||||||
public function getExpireDuration() {
|
public function getExpireDuration()
|
||||||
|
{
|
||||||
return $this->getParam($this->getExpireDurationParamKey());
|
return $this->getParam($this->getExpireDurationParamKey());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -157,7 +169,8 @@ class OAuthToken extends Object
|
|||||||
* Fetches default expire duration param key.
|
* Fetches default expire duration param key.
|
||||||
* @return string expire duration param key.
|
* @return string expire duration param key.
|
||||||
*/
|
*/
|
||||||
protected function defaultExpireDurationParamKey() {
|
protected function defaultExpireDurationParamKey()
|
||||||
|
{
|
||||||
$expireDurationParamKey = 'expires_in';
|
$expireDurationParamKey = 'expires_in';
|
||||||
foreach ($this->getParams() as $name => $value) {
|
foreach ($this->getParams() as $name => $value) {
|
||||||
if (strpos($name, 'expir') !== false) {
|
if (strpos($name, 'expir') !== false) {
|
||||||
@@ -172,7 +185,8 @@ class OAuthToken extends Object
|
|||||||
* Checks if token has expired.
|
* Checks if token has expired.
|
||||||
* @return boolean is token expired.
|
* @return boolean is token expired.
|
||||||
*/
|
*/
|
||||||
public function getIsExpired() {
|
public function getIsExpired()
|
||||||
|
{
|
||||||
$expirationDuration = $this->getExpireDuration();
|
$expirationDuration = $this->getExpireDuration();
|
||||||
if (empty($expirationDuration)) {
|
if (empty($expirationDuration)) {
|
||||||
return false;
|
return false;
|
||||||
@@ -184,7 +198,8 @@ class OAuthToken extends Object
|
|||||||
* Checks if token is valid.
|
* Checks if token is valid.
|
||||||
* @return boolean is token valid.
|
* @return boolean is token valid.
|
||||||
*/
|
*/
|
||||||
public function getIsValid() {
|
public function getIsValid()
|
||||||
|
{
|
||||||
$token = $this->getToken();
|
$token = $this->getToken();
|
||||||
return (!empty($token) && !$this->getIsExpired());
|
return (!empty($token) && !$this->getIsExpired());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -243,10 +243,10 @@ class OpenId extends BaseClient implements ClientInterface
|
|||||||
|
|
||||||
if ($this->verifyPeer !== null) {
|
if ($this->verifyPeer !== null) {
|
||||||
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, $this->verifyPeer);
|
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, $this->verifyPeer);
|
||||||
if($this->capath) {
|
if ($this->capath) {
|
||||||
curl_setopt($curl, CURLOPT_CAPATH, $this->capath);
|
curl_setopt($curl, CURLOPT_CAPATH, $this->capath);
|
||||||
}
|
}
|
||||||
if($this->cainfo) {
|
if ($this->cainfo) {
|
||||||
curl_setopt($curl, CURLOPT_CAINFO, $this->cainfo);
|
curl_setopt($curl, CURLOPT_CAINFO, $this->cainfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -147,7 +147,8 @@ class LinkedIn extends OAuth2
|
|||||||
* Generates the auth state value.
|
* Generates the auth state value.
|
||||||
* @return string auth state value.
|
* @return string auth state value.
|
||||||
*/
|
*/
|
||||||
protected function generateAuthState() {
|
protected function generateAuthState()
|
||||||
|
{
|
||||||
return sha1(uniqid(get_class($this), true));
|
return sha1(uniqid(get_class($this), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -192,7 +192,7 @@ class Installer extends LibraryInstaller
|
|||||||
if (!file_exists($yiiDir)) {
|
if (!file_exists($yiiDir)) {
|
||||||
mkdir($yiiDir, 0777, true);
|
mkdir($yiiDir, 0777, true);
|
||||||
}
|
}
|
||||||
foreach(['Yii.php', 'BaseYii.php', 'classes.php'] as $file) {
|
foreach (['Yii.php', 'BaseYii.php', 'classes.php'] as $file) {
|
||||||
file_put_contents($yiiDir . '/' . $file, <<<EOF
|
file_put_contents($yiiDir . '/' . $file, <<<EOF
|
||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
@@ -213,7 +213,7 @@ EOF
|
|||||||
protected function removeBaseYiiFiles()
|
protected function removeBaseYiiFiles()
|
||||||
{
|
{
|
||||||
$yiiDir = $this->vendorDir . '/yiisoft/yii2';
|
$yiiDir = $this->vendorDir . '/yiisoft/yii2';
|
||||||
foreach(['Yii.php', 'BaseYii.php', 'classes.php'] as $file) {
|
foreach (['Yii.php', 'BaseYii.php', 'classes.php'] as $file) {
|
||||||
if (file_exists($yiiDir . '/' . $file)) {
|
if (file_exists($yiiDir . '/' . $file)) {
|
||||||
unlink($yiiDir . '/' . $file);
|
unlink($yiiDir . '/' . $file);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -168,5 +168,4 @@ class LogTarget extends Target
|
|||||||
# / 2 because messages are in couple (begin/end)
|
# / 2 because messages are in couple (begin/end)
|
||||||
return count($profileLogs) / 2;
|
return count($profileLogs) / 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,5 +37,4 @@ abstract class Base extends Component implements MatcherInterface
|
|||||||
{
|
{
|
||||||
return !empty($this->baseValue) || ($this->baseValue === '0');
|
return !empty($this->baseValue) || ($this->baseValue === '0');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -175,5 +175,4 @@ class DbPanel extends Panel
|
|||||||
{
|
{
|
||||||
return (($this->criticalQueryThreshold !== null) && ($count > $this->criticalQueryThreshold));
|
return (($this->criticalQueryThreshold !== null) && ($count > $this->criticalQueryThreshold));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,5 +102,4 @@ class MailPanel extends Panel
|
|||||||
}
|
}
|
||||||
return $attr;
|
return $attr;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,4 +35,3 @@ echo $this->render('panels/config/table', [
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
echo $panel->getPhpInfo();
|
echo $panel->getPhpInfo();
|
||||||
?>
|
|
||||||
@@ -67,4 +67,3 @@ echo GridView::widget([
|
|||||||
]
|
]
|
||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
?>
|
|
||||||
|
|||||||
@@ -70,4 +70,3 @@ echo GridView::widget([
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
?>
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
use yii\grid\GridView;
|
use yii\grid\GridView;
|
||||||
use yii\helpers\Html;
|
use yii\helpers\Html;
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<h1>Performance Profiling</h1>
|
<h1>Performance Profiling</h1>
|
||||||
<p>Total processing time: <b><?= $time ?></b>; Peak memory: <b><?= $memory ?></b>.</p>
|
<p>Total processing time: <b><?= $time ?></b>; Peak memory: <b><?= $memory ?></b>.</p>
|
||||||
@@ -50,4 +51,3 @@ echo GridView::widget([
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
?>
|
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ class ActiveQuery extends Query implements ActiveQueryInterface
|
|||||||
}
|
}
|
||||||
$models = $this->createModels($result['hits']['hits']);
|
$models = $this->createModels($result['hits']['hits']);
|
||||||
if ($this->asArray && !$this->indexBy) {
|
if ($this->asArray && !$this->indexBy) {
|
||||||
foreach($models as $key => $model) {
|
foreach ($models as $key => $model) {
|
||||||
if ($pk === '_id') {
|
if ($pk === '_id') {
|
||||||
$model['_source']['_id'] = $model['_id'];
|
$model['_source']['_id'] = $model['_id'];
|
||||||
}
|
}
|
||||||
@@ -168,7 +168,7 @@ class ActiveQuery extends Query implements ActiveQueryInterface
|
|||||||
$this->findWith($this->with, $models);
|
$this->findWith($this->with, $models);
|
||||||
}
|
}
|
||||||
if (!$this->asArray) {
|
if (!$this->asArray) {
|
||||||
foreach($models as $model) {
|
foreach ($models as $model) {
|
||||||
$model->afterFind();
|
$model->afterFind();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -226,7 +226,7 @@ class ActiveQuery extends Query implements ActiveQueryInterface
|
|||||||
/** @var ActiveRecord $modelClass */
|
/** @var ActiveRecord $modelClass */
|
||||||
$modelClass = $this->modelClass;
|
$modelClass = $this->modelClass;
|
||||||
$pk = $modelClass::primaryKey()[0];
|
$pk = $modelClass::primaryKey()[0];
|
||||||
foreach($models as $key => $model) {
|
foreach ($models as $key => $model) {
|
||||||
if ($pk === '_id') {
|
if ($pk === '_id') {
|
||||||
$model['_source']['_id'] = $model['_id'];
|
$model['_source']['_id'] = $model['_id'];
|
||||||
}
|
}
|
||||||
@@ -238,7 +238,7 @@ class ActiveQuery extends Query implements ActiveQueryInterface
|
|||||||
$this->findWith($this->with, $models);
|
$this->findWith($this->with, $models);
|
||||||
}
|
}
|
||||||
if (!$this->asArray) {
|
if (!$this->asArray) {
|
||||||
foreach($models as $model) {
|
foreach ($models as $model) {
|
||||||
$model->afterFind();
|
$model->afterFind();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ class ActiveRecord extends BaseActiveRecord
|
|||||||
$command = static::getDb()->createCommand();
|
$command = static::getDb()->createCommand();
|
||||||
$result = $command->mget(static::index(), static::type(), $primaryKeys, $options);
|
$result = $command->mget(static::index(), static::type(), $primaryKeys, $options);
|
||||||
$models = [];
|
$models = [];
|
||||||
foreach($result['docs'] as $doc) {
|
foreach ($result['docs'] as $doc) {
|
||||||
if ($doc['exists']) {
|
if ($doc['exists']) {
|
||||||
$model = static::instantiate($doc);
|
$model = static::instantiate($doc);
|
||||||
static::populateRecord($model, $doc);
|
static::populateRecord($model, $doc);
|
||||||
@@ -422,7 +422,7 @@ class ActiveRecord extends BaseActiveRecord
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
$bulk = '';
|
$bulk = '';
|
||||||
foreach($primaryKeys as $pk) {
|
foreach ($primaryKeys as $pk) {
|
||||||
$action = Json::encode([
|
$action = Json::encode([
|
||||||
"update" => [
|
"update" => [
|
||||||
"_id" => $pk,
|
"_id" => $pk,
|
||||||
@@ -441,7 +441,7 @@ class ActiveRecord extends BaseActiveRecord
|
|||||||
$response = static::getDb()->post($url, [], $bulk);
|
$response = static::getDb()->post($url, [], $bulk);
|
||||||
$n=0;
|
$n=0;
|
||||||
$errors = [];
|
$errors = [];
|
||||||
foreach($response['items'] as $item) {
|
foreach ($response['items'] as $item) {
|
||||||
if (isset($item['update']['error'])) {
|
if (isset($item['update']['error'])) {
|
||||||
$errors[] = $item['update'];
|
$errors[] = $item['update'];
|
||||||
} elseif ($item['update']['ok']) {
|
} elseif ($item['update']['ok']) {
|
||||||
@@ -480,7 +480,7 @@ class ActiveRecord extends BaseActiveRecord
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
$bulk = '';
|
$bulk = '';
|
||||||
foreach($primaryKeys as $pk) {
|
foreach ($primaryKeys as $pk) {
|
||||||
$action = Json::encode([
|
$action = Json::encode([
|
||||||
"update" => [
|
"update" => [
|
||||||
"_id" => $pk,
|
"_id" => $pk,
|
||||||
@@ -489,12 +489,12 @@ class ActiveRecord extends BaseActiveRecord
|
|||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
$script = '';
|
$script = '';
|
||||||
foreach($counters as $counter => $value) {
|
foreach ($counters as $counter => $value) {
|
||||||
$script .= "ctx._source.$counter += $counter;\n";
|
$script .= "ctx._source.$counter += $counter;\n";
|
||||||
}
|
}
|
||||||
$data = Json::encode([
|
$data = Json::encode([
|
||||||
"script" => $script,
|
"script" => $script,
|
||||||
"params" => $counters
|
"params" => $counters
|
||||||
]);
|
]);
|
||||||
$bulk .= $action . "\n" . $data . "\n";
|
$bulk .= $action . "\n" . $data . "\n";
|
||||||
}
|
}
|
||||||
@@ -504,7 +504,7 @@ class ActiveRecord extends BaseActiveRecord
|
|||||||
$response = static::getDb()->post($url, [], $bulk);
|
$response = static::getDb()->post($url, [], $bulk);
|
||||||
$n=0;
|
$n=0;
|
||||||
$errors = [];
|
$errors = [];
|
||||||
foreach($response['items'] as $item) {
|
foreach ($response['items'] as $item) {
|
||||||
if (isset($item['update']['error'])) {
|
if (isset($item['update']['error'])) {
|
||||||
$errors[] = $item['update'];
|
$errors[] = $item['update'];
|
||||||
} elseif ($item['update']['ok']) {
|
} elseif ($item['update']['ok']) {
|
||||||
@@ -543,7 +543,7 @@ class ActiveRecord extends BaseActiveRecord
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
$bulk = '';
|
$bulk = '';
|
||||||
foreach($primaryKeys as $pk) {
|
foreach ($primaryKeys as $pk) {
|
||||||
$bulk .= Json::encode([
|
$bulk .= Json::encode([
|
||||||
"delete" => [
|
"delete" => [
|
||||||
"_id" => $pk,
|
"_id" => $pk,
|
||||||
@@ -558,7 +558,7 @@ class ActiveRecord extends BaseActiveRecord
|
|||||||
$response = static::getDb()->post($url, [], $bulk);
|
$response = static::getDb()->post($url, [], $bulk);
|
||||||
$n=0;
|
$n=0;
|
||||||
$errors = [];
|
$errors = [];
|
||||||
foreach($response['items'] as $item) {
|
foreach ($response['items'] as $item) {
|
||||||
if (isset($item['delete']['error'])) {
|
if (isset($item['delete']['error'])) {
|
||||||
$errors[] = $item['delete'];
|
$errors[] = $item['delete'];
|
||||||
} elseif ($item['delete']['found'] && $item['delete']['ok']) {
|
} elseif ($item['delete']['found'] && $item['delete']['ok']) {
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ class Connection extends Component
|
|||||||
|
|
||||||
public function init()
|
public function init()
|
||||||
{
|
{
|
||||||
foreach($this->nodes as $node) {
|
foreach ($this->nodes as $node) {
|
||||||
if (!isset($node['http_address'])) {
|
if (!isset($node['http_address'])) {
|
||||||
throw new InvalidConfigException('Elasticsearch node needs at least a http_address configured.');
|
throw new InvalidConfigException('Elasticsearch node needs at least a http_address configured.');
|
||||||
}
|
}
|
||||||
@@ -210,7 +210,7 @@ class Connection extends Component
|
|||||||
private function createUrl($path, $options = [])
|
private function createUrl($path, $options = [])
|
||||||
{
|
{
|
||||||
if (!is_string($path)) {
|
if (!is_string($path)) {
|
||||||
$url = implode('/', array_map(function($a) {
|
$url = implode('/', array_map(function ($a) {
|
||||||
return urlencode(is_array($a) ? implode(',', $a) : $a);
|
return urlencode(is_array($a) ? implode(',', $a) : $a);
|
||||||
}, $path));
|
}, $path));
|
||||||
if (!empty($options)) {
|
if (!empty($options)) {
|
||||||
@@ -240,12 +240,12 @@ class Connection extends Component
|
|||||||
// http://www.php.net/manual/en/function.curl-setopt.php#82418
|
// http://www.php.net/manual/en/function.curl-setopt.php#82418
|
||||||
CURLOPT_HTTPHEADER => ['Expect:'],
|
CURLOPT_HTTPHEADER => ['Expect:'],
|
||||||
|
|
||||||
CURLOPT_WRITEFUNCTION => function($curl, $data) use (&$body) {
|
CURLOPT_WRITEFUNCTION => function ($curl, $data) use (&$body) {
|
||||||
$body .= $data;
|
$body .= $data;
|
||||||
return mb_strlen($data, '8bit');
|
return mb_strlen($data, '8bit');
|
||||||
},
|
},
|
||||||
CURLOPT_HEADERFUNCTION => function($curl, $data) use (&$headers) {
|
CURLOPT_HEADERFUNCTION => function ($curl, $data) use (&$headers) {
|
||||||
foreach(explode("\r\n", $data) as $row) {
|
foreach (explode("\r\n", $data) as $row) {
|
||||||
if (($pos = strpos($row, ':')) !== false) {
|
if (($pos = strpos($row, ':')) !== false) {
|
||||||
$headers[strtolower(substr($row, 0, $pos))] = trim(substr($row, $pos + 1));
|
$headers[strtolower(substr($row, 0, $pos))] = trim(substr($row, $pos + 1));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -177,7 +177,7 @@ class QueryBuilder extends \yii\base\Object
|
|||||||
private function buildHashCondition($condition)
|
private function buildHashCondition($condition)
|
||||||
{
|
{
|
||||||
$parts = [];
|
$parts = [];
|
||||||
foreach($condition as $attribute => $value) {
|
foreach ($condition as $attribute => $value) {
|
||||||
if ($attribute == '_id') {
|
if ($attribute == '_id') {
|
||||||
if ($value == null) { // there is no null pk
|
if ($value == null) { // there is no null pk
|
||||||
$parts[] = ['script' => ['script' => '0==1']];
|
$parts[] = ['script' => ['script' => '0==1']];
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ use yii\base\InvalidConfigException;
|
|||||||
use yii\base\Model;
|
use yii\base\Model;
|
||||||
use yii\web\View;
|
use yii\web\View;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is the base class for all generator classes.
|
* This is the base class for all generator classes.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ HTML;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Added lines only on the right side
|
// Added lines only on the right side
|
||||||
else if ($change['tag'] === 'insert') {
|
elseif ($change['tag'] === 'insert') {
|
||||||
foreach ($change['changed']['lines'] as $no => $line) {
|
foreach ($change['changed']['lines'] as $no => $line) {
|
||||||
$toLine = $change['changed']['offset'] + $no + 1;
|
$toLine = $change['changed']['offset'] + $no + 1;
|
||||||
$html .= <<<HTML
|
$html .= <<<HTML
|
||||||
@@ -86,7 +86,7 @@ HTML;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Show deleted lines only on the left side
|
// Show deleted lines only on the left side
|
||||||
else if ($change['tag'] === 'delete') {
|
elseif ($change['tag'] === 'delete') {
|
||||||
foreach ($change['base']['lines'] as $no => $line) {
|
foreach ($change['base']['lines'] as $no => $line) {
|
||||||
$fromLine = $change['base']['offset'] + $no + 1;
|
$fromLine = $change['base']['offset'] + $no + 1;
|
||||||
$html .= <<<HTML
|
$html .= <<<HTML
|
||||||
@@ -99,7 +99,7 @@ HTML;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Show modified lines on both sides
|
// Show modified lines on both sides
|
||||||
else if ($change['tag'] === 'replace') {
|
elseif ($change['tag'] === 'replace') {
|
||||||
foreach ($change['base']['lines'] as $no => $line) {
|
foreach ($change['base']['lines'] as $no => $line) {
|
||||||
$fromLine = $change['base']['offset'] + $no + 1;
|
$fromLine = $change['base']['offset'] + $no + 1;
|
||||||
$html .= <<<HTML
|
$html .= <<<HTML
|
||||||
|
|||||||
@@ -499,5 +499,4 @@ class Generator extends \yii\gii\Generator
|
|||||||
return $model->attributes();
|
return $model->attributes();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace yii\jui;
|
namespace yii\jui;
|
||||||
|
|
||||||
use yii\web\AssetBundle;
|
use yii\web\AssetBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace yii\jui;
|
namespace yii\jui;
|
||||||
|
|
||||||
use yii\web\AssetBundle;
|
use yii\web\AssetBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace yii\jui;
|
namespace yii\jui;
|
||||||
|
|
||||||
use yii\web\AssetBundle;
|
use yii\web\AssetBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace yii\jui;
|
namespace yii\jui;
|
||||||
|
|
||||||
use yii\web\AssetBundle;
|
use yii\web\AssetBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace yii\jui;
|
namespace yii\jui;
|
||||||
|
|
||||||
use yii\web\AssetBundle;
|
use yii\web\AssetBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace yii\jui;
|
namespace yii\jui;
|
||||||
|
|
||||||
use yii\web\AssetBundle;
|
use yii\web\AssetBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace yii\jui;
|
namespace yii\jui;
|
||||||
|
|
||||||
use yii\web\AssetBundle;
|
use yii\web\AssetBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace yii\jui;
|
namespace yii\jui;
|
||||||
|
|
||||||
use yii\web\AssetBundle;
|
use yii\web\AssetBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace yii\jui;
|
namespace yii\jui;
|
||||||
|
|
||||||
use yii\web\AssetBundle;
|
use yii\web\AssetBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace yii\jui;
|
namespace yii\jui;
|
||||||
|
|
||||||
use yii\web\AssetBundle;
|
use yii\web\AssetBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace yii\jui;
|
namespace yii\jui;
|
||||||
|
|
||||||
use yii\web\AssetBundle;
|
use yii\web\AssetBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace yii\jui;
|
namespace yii\jui;
|
||||||
|
|
||||||
use yii\web\AssetBundle;
|
use yii\web\AssetBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace yii\jui;
|
namespace yii\jui;
|
||||||
|
|
||||||
use yii\web\AssetBundle;
|
use yii\web\AssetBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace yii\jui;
|
namespace yii\jui;
|
||||||
|
|
||||||
use yii\web\AssetBundle;
|
use yii\web\AssetBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace yii\jui;
|
namespace yii\jui;
|
||||||
|
|
||||||
use yii\web\AssetBundle;
|
use yii\web\AssetBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace yii\jui;
|
namespace yii\jui;
|
||||||
|
|
||||||
use yii\web\AssetBundle;
|
use yii\web\AssetBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace yii\jui;
|
namespace yii\jui;
|
||||||
|
|
||||||
use yii\web\AssetBundle;
|
use yii\web\AssetBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace yii\jui;
|
namespace yii\jui;
|
||||||
|
|
||||||
use yii\web\AssetBundle;
|
use yii\web\AssetBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace yii\jui;
|
namespace yii\jui;
|
||||||
|
|
||||||
use yii\web\AssetBundle;
|
use yii\web\AssetBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ class ActiveQuery extends Query implements ActiveQueryInterface
|
|||||||
$this->findWith($this->with, $models);
|
$this->findWith($this->with, $models);
|
||||||
}
|
}
|
||||||
if (!$this->asArray) {
|
if (!$this->asArray) {
|
||||||
foreach($models as $model) {
|
foreach ($models as $model) {
|
||||||
$model->afterFind();
|
$model->afterFind();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -626,7 +626,8 @@ class Collection extends Object
|
|||||||
* @return array the highest scoring documents, in descending order by score.
|
* @return array the highest scoring documents, in descending order by score.
|
||||||
* @throws Exception on failure.
|
* @throws Exception on failure.
|
||||||
*/
|
*/
|
||||||
public function fullTextSearch($search, $condition = [], $fields = [], $options = []) {
|
public function fullTextSearch($search, $condition = [], $fields = [], $options = [])
|
||||||
|
{
|
||||||
$command = [
|
$command = [
|
||||||
'search' => $search
|
'search' => $search
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ class ActiveQuery extends Query implements ActiveQueryInterface
|
|||||||
$this->findWith($this->with, $models);
|
$this->findWith($this->with, $models);
|
||||||
}
|
}
|
||||||
if (!$this->asArray) {
|
if (!$this->asArray) {
|
||||||
foreach($models as $model) {
|
foreach ($models as $model) {
|
||||||
$model->afterFind();
|
$model->afterFind();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,10 +87,10 @@ class ActiveQuery extends \yii\base\Component implements ActiveQueryInterface
|
|||||||
// TODO add support for orderBy
|
// TODO add support for orderBy
|
||||||
$data = $this->executeScript($db, 'All');
|
$data = $this->executeScript($db, 'All');
|
||||||
$rows = [];
|
$rows = [];
|
||||||
foreach($data as $dataRow) {
|
foreach ($data as $dataRow) {
|
||||||
$row = [];
|
$row = [];
|
||||||
$c = count($dataRow);
|
$c = count($dataRow);
|
||||||
for($i = 0; $i < $c; ) {
|
for ($i = 0; $i < $c;) {
|
||||||
$row[$dataRow[$i++]] = $dataRow[$i++];
|
$row[$dataRow[$i++]] = $dataRow[$i++];
|
||||||
}
|
}
|
||||||
$rows[] = $row;
|
$rows[] = $row;
|
||||||
@@ -101,7 +101,7 @@ class ActiveQuery extends \yii\base\Component implements ActiveQueryInterface
|
|||||||
$this->findWith($this->with, $models);
|
$this->findWith($this->with, $models);
|
||||||
}
|
}
|
||||||
if (!$this->asArray) {
|
if (!$this->asArray) {
|
||||||
foreach($models as $model) {
|
foreach ($models as $model) {
|
||||||
$model->afterFind();
|
$model->afterFind();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -128,7 +128,7 @@ class ActiveQuery extends \yii\base\Component implements ActiveQueryInterface
|
|||||||
}
|
}
|
||||||
$row = [];
|
$row = [];
|
||||||
$c = count($data);
|
$c = count($data);
|
||||||
for($i = 0; $i < $c; ) {
|
for ($i = 0; $i < $c;) {
|
||||||
$row[$data[$i++]] = $data[$i++];
|
$row[$data[$i++]] = $data[$i++];
|
||||||
}
|
}
|
||||||
if ($this->asArray) {
|
if ($this->asArray) {
|
||||||
@@ -336,7 +336,7 @@ class ActiveQuery extends \yii\base\Component implements ActiveQueryInterface
|
|||||||
if (count($this->where) == 1) {
|
if (count($this->where) == 1) {
|
||||||
$pks = (array) reset($this->where);
|
$pks = (array) reset($this->where);
|
||||||
} else {
|
} else {
|
||||||
foreach($this->where as $values) {
|
foreach ($this->where as $values) {
|
||||||
if (is_array($values)) {
|
if (is_array($values)) {
|
||||||
// TODO support composite IN for composite PK
|
// TODO support composite IN for composite PK
|
||||||
throw new NotSupportedException('Find by composite PK is not supported by redis ActiveRecord.');
|
throw new NotSupportedException('Find by composite PK is not supported by redis ActiveRecord.');
|
||||||
@@ -357,7 +357,7 @@ class ActiveQuery extends \yii\base\Component implements ActiveQueryInterface
|
|||||||
}
|
}
|
||||||
$i = 0;
|
$i = 0;
|
||||||
$data = [];
|
$data = [];
|
||||||
foreach($pks as $pk) {
|
foreach ($pks as $pk) {
|
||||||
if (++$i > $start && ($limit === null || $i <= $start + $limit)) {
|
if (++$i > $start && ($limit === null || $i <= $start + $limit)) {
|
||||||
$key = $modelClass::keyPrefix() . ':a:' . $modelClass::buildKey($pk);
|
$key = $modelClass::keyPrefix() . ':a:' . $modelClass::buildKey($pk);
|
||||||
$result = $db->executeCommand('HGETALL', [$key]);
|
$result = $db->executeCommand('HGETALL', [$key]);
|
||||||
@@ -380,10 +380,10 @@ class ActiveQuery extends \yii\base\Component implements ActiveQueryInterface
|
|||||||
return count($data);
|
return count($data);
|
||||||
case 'Column':
|
case 'Column':
|
||||||
$column = [];
|
$column = [];
|
||||||
foreach($data as $dataRow) {
|
foreach ($data as $dataRow) {
|
||||||
$row = [];
|
$row = [];
|
||||||
$c = count($dataRow);
|
$c = count($dataRow);
|
||||||
for($i = 0; $i < $c; ) {
|
for ($i = 0; $i < $c;) {
|
||||||
$row[$dataRow[$i++]] = $dataRow[$i++];
|
$row[$dataRow[$i++]] = $dataRow[$i++];
|
||||||
}
|
}
|
||||||
$column[] = $row[$columnName];
|
$column[] = $row[$columnName];
|
||||||
@@ -391,9 +391,9 @@ class ActiveQuery extends \yii\base\Component implements ActiveQueryInterface
|
|||||||
return $column;
|
return $column;
|
||||||
case 'Sum':
|
case 'Sum':
|
||||||
$sum = 0;
|
$sum = 0;
|
||||||
foreach($data as $dataRow) {
|
foreach ($data as $dataRow) {
|
||||||
$c = count($dataRow);
|
$c = count($dataRow);
|
||||||
for($i = 0; $i < $c; ) {
|
for ($i = 0; $i < $c;) {
|
||||||
if ($dataRow[$i++] == $columnName) {
|
if ($dataRow[$i++] == $columnName) {
|
||||||
$sum += $dataRow[$i];
|
$sum += $dataRow[$i];
|
||||||
break;
|
break;
|
||||||
@@ -404,10 +404,10 @@ class ActiveQuery extends \yii\base\Component implements ActiveQueryInterface
|
|||||||
case 'Average':
|
case 'Average':
|
||||||
$sum = 0;
|
$sum = 0;
|
||||||
$count = 0;
|
$count = 0;
|
||||||
foreach($data as $dataRow) {
|
foreach ($data as $dataRow) {
|
||||||
$count++;
|
$count++;
|
||||||
$c = count($dataRow);
|
$c = count($dataRow);
|
||||||
for($i = 0; $i < $c; ) {
|
for ($i = 0; $i < $c;) {
|
||||||
if ($dataRow[$i++] == $columnName) {
|
if ($dataRow[$i++] == $columnName) {
|
||||||
$sum += $dataRow[$i];
|
$sum += $dataRow[$i];
|
||||||
break;
|
break;
|
||||||
@@ -417,9 +417,9 @@ class ActiveQuery extends \yii\base\Component implements ActiveQueryInterface
|
|||||||
return $sum / $count;
|
return $sum / $count;
|
||||||
case 'Min':
|
case 'Min':
|
||||||
$min = null;
|
$min = null;
|
||||||
foreach($data as $dataRow) {
|
foreach ($data as $dataRow) {
|
||||||
$c = count($dataRow);
|
$c = count($dataRow);
|
||||||
for($i = 0; $i < $c; ) {
|
for ($i = 0; $i < $c;) {
|
||||||
if ($dataRow[$i++] == $columnName && ($min == null || $dataRow[$i] < $min)) {
|
if ($dataRow[$i++] == $columnName && ($min == null || $dataRow[$i] < $min)) {
|
||||||
$min = $dataRow[$i];
|
$min = $dataRow[$i];
|
||||||
break;
|
break;
|
||||||
@@ -429,9 +429,9 @@ class ActiveQuery extends \yii\base\Component implements ActiveQueryInterface
|
|||||||
return $min;
|
return $min;
|
||||||
case 'Max':
|
case 'Max':
|
||||||
$max = null;
|
$max = null;
|
||||||
foreach($data as $dataRow) {
|
foreach ($data as $dataRow) {
|
||||||
$c = count($dataRow);
|
$c = count($dataRow);
|
||||||
for($i = 0; $i < $c; ) {
|
for ($i = 0; $i < $c;) {
|
||||||
if ($dataRow[$i++] == $columnName && ($max == null || $dataRow[$i] > $max)) {
|
if ($dataRow[$i++] == $columnName && ($max == null || $dataRow[$i] > $max)) {
|
||||||
$max = $dataRow[$i];
|
$max = $dataRow[$i];
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ class ActiveRecord extends BaseActiveRecord
|
|||||||
$key = static::keyPrefix() . ':a:' . static::buildKey($pk);
|
$key = static::keyPrefix() . ':a:' . static::buildKey($pk);
|
||||||
// save attributes
|
// save attributes
|
||||||
$args = [$key];
|
$args = [$key];
|
||||||
foreach($values as $attribute => $value) {
|
foreach ($values as $attribute => $value) {
|
||||||
$args[] = $attribute;
|
$args[] = $attribute;
|
||||||
$args[] = $value;
|
$args[] = $value;
|
||||||
}
|
}
|
||||||
@@ -172,13 +172,13 @@ class ActiveRecord extends BaseActiveRecord
|
|||||||
}
|
}
|
||||||
$db = static::getDb();
|
$db = static::getDb();
|
||||||
$n=0;
|
$n=0;
|
||||||
foreach(static::fetchPks($condition) as $pk) {
|
foreach (static::fetchPks($condition) as $pk) {
|
||||||
$newPk = $pk;
|
$newPk = $pk;
|
||||||
$pk = static::buildKey($pk);
|
$pk = static::buildKey($pk);
|
||||||
$key = static::keyPrefix() . ':a:' . $pk;
|
$key = static::keyPrefix() . ':a:' . $pk;
|
||||||
// save attributes
|
// save attributes
|
||||||
$args = [$key];
|
$args = [$key];
|
||||||
foreach($attributes as $attribute => $value) {
|
foreach ($attributes as $attribute => $value) {
|
||||||
if (isset($newPk[$attribute])) {
|
if (isset($newPk[$attribute])) {
|
||||||
$newPk[$attribute] = $value;
|
$newPk[$attribute] = $value;
|
||||||
}
|
}
|
||||||
@@ -224,9 +224,9 @@ class ActiveRecord extends BaseActiveRecord
|
|||||||
}
|
}
|
||||||
$db = static::getDb();
|
$db = static::getDb();
|
||||||
$n=0;
|
$n=0;
|
||||||
foreach(static::fetchPks($condition) as $pk) {
|
foreach (static::fetchPks($condition) as $pk) {
|
||||||
$key = static::keyPrefix() . ':a:' . static::buildKey($pk);
|
$key = static::keyPrefix() . ':a:' . static::buildKey($pk);
|
||||||
foreach($counters as $attribute => $value) {
|
foreach ($counters as $attribute => $value) {
|
||||||
$db->executeCommand('HINCRBY', [$key, $attribute, $value]);
|
$db->executeCommand('HINCRBY', [$key, $attribute, $value]);
|
||||||
}
|
}
|
||||||
$n++;
|
$n++;
|
||||||
@@ -254,7 +254,7 @@ class ActiveRecord extends BaseActiveRecord
|
|||||||
$attributeKeys = [];
|
$attributeKeys = [];
|
||||||
$pks = static::fetchPks($condition);
|
$pks = static::fetchPks($condition);
|
||||||
$db->executeCommand('MULTI');
|
$db->executeCommand('MULTI');
|
||||||
foreach($pks as $pk) {
|
foreach ($pks as $pk) {
|
||||||
$pk = static::buildKey($pk);
|
$pk = static::buildKey($pk);
|
||||||
$db->executeCommand('LREM', [static::keyPrefix(), 0, $pk]);
|
$db->executeCommand('LREM', [static::keyPrefix(), 0, $pk]);
|
||||||
$attributeKeys[] = static::keyPrefix() . ':a:' . $pk;
|
$attributeKeys[] = static::keyPrefix() . ':a:' . $pk;
|
||||||
@@ -276,9 +276,9 @@ class ActiveRecord extends BaseActiveRecord
|
|||||||
$primaryKey = static::primaryKey();
|
$primaryKey = static::primaryKey();
|
||||||
|
|
||||||
$pks = [];
|
$pks = [];
|
||||||
foreach($records as $record) {
|
foreach ($records as $record) {
|
||||||
$pk = [];
|
$pk = [];
|
||||||
foreach($primaryKey as $key) {
|
foreach ($primaryKey as $key) {
|
||||||
$pk[$key] = $record[$key];
|
$pk[$key] = $record[$key];
|
||||||
}
|
}
|
||||||
$pks[] = $pk;
|
$pks[] = $pk;
|
||||||
@@ -304,7 +304,7 @@ class ActiveRecord extends BaseActiveRecord
|
|||||||
}
|
}
|
||||||
ksort($key); // ensure order is always the same
|
ksort($key); // ensure order is always the same
|
||||||
$isNumeric = true;
|
$isNumeric = true;
|
||||||
foreach($key as $value) {
|
foreach ($key as $value) {
|
||||||
if (!is_numeric($value)) {
|
if (!is_numeric($value)) {
|
||||||
$isNumeric = false;
|
$isNumeric = false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ class Cache extends \yii\caching\Cache
|
|||||||
parent::init();
|
parent::init();
|
||||||
if (is_string($this->redis)) {
|
if (is_string($this->redis)) {
|
||||||
$this->redis = Yii::$app->getComponent($this->redis);
|
$this->redis = Yii::$app->getComponent($this->redis);
|
||||||
} else if (is_array($this->redis)) {
|
} elseif (is_array($this->redis)) {
|
||||||
if (!isset($this->redis['class'])) {
|
if (!isset($this->redis['class'])) {
|
||||||
$this->redis['class'] = Connection::className();
|
$this->redis['class'] = Connection::className();
|
||||||
}
|
}
|
||||||
@@ -145,7 +145,7 @@ class Cache extends \yii\caching\Cache
|
|||||||
protected function setValues($data, $expire)
|
protected function setValues($data, $expire)
|
||||||
{
|
{
|
||||||
$args = [];
|
$args = [];
|
||||||
foreach($data as $key => $value) {
|
foreach ($data as $key => $value) {
|
||||||
$args[] = $key;
|
$args[] = $key;
|
||||||
$args[] = $value;
|
$args[] = $value;
|
||||||
}
|
}
|
||||||
@@ -164,7 +164,7 @@ class Cache extends \yii\caching\Cache
|
|||||||
}
|
}
|
||||||
$result = $this->redis->executeCommand('EXEC');
|
$result = $this->redis->executeCommand('EXEC');
|
||||||
array_shift($result);
|
array_shift($result);
|
||||||
foreach($result as $i => $r) {
|
foreach ($result as $i => $r) {
|
||||||
if ($r != 1) {
|
if ($r != 1) {
|
||||||
$failedKeys[] = $index[$i];
|
$failedKeys[] = $index[$i];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -254,7 +254,7 @@ class Connection extends Component
|
|||||||
);
|
);
|
||||||
if ($this->_socket) {
|
if ($this->_socket) {
|
||||||
if ($this->dataTimeout !== null) {
|
if ($this->dataTimeout !== null) {
|
||||||
stream_set_timeout($this->_socket, $timeout=(int)$this->dataTimeout, (int) (($this->dataTimeout - $timeout) * 1000000));
|
stream_set_timeout($this->_socket, $timeout = (int)$this->dataTimeout, (int) (($this->dataTimeout - $timeout) * 1000000));
|
||||||
}
|
}
|
||||||
if ($this->password !== null) {
|
if ($this->password !== null) {
|
||||||
$this->executeCommand('AUTH', [$this->password]);
|
$this->executeCommand('AUTH', [$this->password]);
|
||||||
@@ -345,13 +345,13 @@ class Connection extends Component
|
|||||||
* for details on the mentioned reply types.
|
* for details on the mentioned reply types.
|
||||||
* @trows Exception for commands that return [error reply](http://redis.io/topics/protocol#error-reply).
|
* @trows Exception for commands that return [error reply](http://redis.io/topics/protocol#error-reply).
|
||||||
*/
|
*/
|
||||||
public function executeCommand($name, $params=[])
|
public function executeCommand($name, $params = [])
|
||||||
{
|
{
|
||||||
$this->open();
|
$this->open();
|
||||||
|
|
||||||
array_unshift($params, $name);
|
array_unshift($params, $name);
|
||||||
$command = '*' . count($params) . "\r\n";
|
$command = '*' . count($params) . "\r\n";
|
||||||
foreach($params as $arg) {
|
foreach ($params as $arg) {
|
||||||
$command .= '$' . mb_strlen($arg, '8bit') . "\r\n" . $arg . "\r\n";
|
$command .= '$' . mb_strlen($arg, '8bit') . "\r\n" . $arg . "\r\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -133,6 +133,7 @@ class LuaScriptBuilder extends \yii\base\Object
|
|||||||
* @param ActiveQuery $query the query used to build the script
|
* @param ActiveQuery $query the query used to build the script
|
||||||
* @param string $buildResult the lua script for building the result
|
* @param string $buildResult the lua script for building the result
|
||||||
* @param string $return the lua variable that should be returned
|
* @param string $return the lua variable that should be returned
|
||||||
|
* @throws yii\base\NotSupportedException when query contains unsupported order by condition
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
private function build($query, $buildResult, $return)
|
private function build($query, $buildResult, $return)
|
||||||
@@ -155,7 +156,7 @@ class LuaScriptBuilder extends \yii\base\Object
|
|||||||
$modelClass = $query->modelClass;
|
$modelClass = $query->modelClass;
|
||||||
$key = $this->quoteValue($modelClass::keyPrefix());
|
$key = $this->quoteValue($modelClass::keyPrefix());
|
||||||
$loadColumnValues = '';
|
$loadColumnValues = '';
|
||||||
foreach($columns as $column => $alias) {
|
foreach ($columns as $column => $alias) {
|
||||||
$loadColumnValues .= "local $alias=redis.call('HGET',$key .. ':a:' .. pk, '$column')\n";
|
$loadColumnValues .= "local $alias=redis.call('HGET',$key .. ':a:' .. pk, '$column')\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ class Session extends \yii\web\Session
|
|||||||
{
|
{
|
||||||
if (is_string($this->redis)) {
|
if (is_string($this->redis)) {
|
||||||
$this->redis = Yii::$app->getComponent($this->redis);
|
$this->redis = Yii::$app->getComponent($this->redis);
|
||||||
} else if (is_array($this->redis)) {
|
} elseif (is_array($this->redis)) {
|
||||||
if (!isset($this->redis['class'])) {
|
if (!isset($this->redis['class'])) {
|
||||||
$this->redis['class'] = Connection::className();
|
$this->redis['class'] = Connection::className();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ class ActiveQuery extends Query implements ActiveQueryInterface
|
|||||||
}
|
}
|
||||||
$models = $this->fillUpSnippets($models);
|
$models = $this->fillUpSnippets($models);
|
||||||
if (!$this->asArray) {
|
if (!$this->asArray) {
|
||||||
foreach($models as $model) {
|
foreach ($models as $model) {
|
||||||
$model->afterFind();
|
$model->afterFind();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace yii\sphinx;
|
namespace yii\sphinx;
|
||||||
|
|
||||||
use yii\base\NotSupportedException;
|
use yii\base\NotSupportedException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -422,7 +422,7 @@ class QueryBuilder extends Object
|
|||||||
if (strpos($column, '(') === false) {
|
if (strpos($column, '(') === false) {
|
||||||
$column = $this->db->quoteColumnName($column);
|
$column = $this->db->quoteColumnName($column);
|
||||||
}
|
}
|
||||||
$columns[$i] = "$column AS " . $this->db->quoteColumnName($i);;
|
$columns[$i] = "$column AS " . $this->db->quoteColumnName($i);
|
||||||
} elseif (strpos($column, '(') === false) {
|
} elseif (strpos($column, '(') === false) {
|
||||||
if (preg_match('/^(.*?)(?i:\s+as\s+|\s+)([\w\-_\.]+)$/', $column, $matches)) {
|
if (preg_match('/^(.*?)(?i:\s+as\s+|\s+)([\w\-_\.]+)$/', $column, $matches)) {
|
||||||
$columns[$i] = $this->db->quoteColumnName($matches[1]) . ' AS ' . $this->db->quoteColumnName($matches[2]);
|
$columns[$i] = $this->db->quoteColumnName($matches[1]) . ' AS ' . $this->db->quoteColumnName($matches[2]);
|
||||||
@@ -907,7 +907,8 @@ class QueryBuilder extends Object
|
|||||||
* @param array $params the binding parameters to be populated
|
* @param array $params the binding parameters to be populated
|
||||||
* @return string SQL expression, which represents column value
|
* @return string SQL expression, which represents column value
|
||||||
*/
|
*/
|
||||||
protected function composeColumnValue($indexes, $columnName, $value, &$params) {
|
protected function composeColumnValue($indexes, $columnName, $value, &$params)
|
||||||
|
{
|
||||||
if ($value === null) {
|
if ($value === null) {
|
||||||
return 'NULL';
|
return 'NULL';
|
||||||
} elseif ($value instanceof Expression) {
|
} elseif ($value instanceof Expression) {
|
||||||
|
|||||||
@@ -68,7 +68,8 @@ class TwigSimpleFileLoader implements \Twig_LoaderInterface
|
|||||||
* @param string $name file name
|
* @param string $name file name
|
||||||
* @return string absolute path of file
|
* @return string absolute path of file
|
||||||
*/
|
*/
|
||||||
protected function getFilePath($name){
|
protected function getFilePath($name)
|
||||||
|
{
|
||||||
return $this->_dir . '/' . $name;
|
return $this->_dir . '/' . $name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -33,46 +33,46 @@ class ViewRenderer extends BaseViewRenderer
|
|||||||
* @see http://twig.sensiolabs.org/doc/api.html#environment-options
|
* @see http://twig.sensiolabs.org/doc/api.html#environment-options
|
||||||
*/
|
*/
|
||||||
public $options = [];
|
public $options = [];
|
||||||
/**
|
/**
|
||||||
* @var array Objects or static classes.
|
* @var array Objects or static classes.
|
||||||
* Keys of the array are names to call in template, values are objects or names of static classes.
|
* Keys of the array are names to call in template, values are objects or names of static classes.
|
||||||
* Example: `['html' => '\yii\helpers\Html']`.
|
* Example: `['html' => '\yii\helpers\Html']`.
|
||||||
* In the template you can use it like this: `{{ html.a('Login', 'site/login') | raw }}`.
|
* In the template you can use it like this: `{{ html.a('Login', 'site/login') | raw }}`.
|
||||||
*/
|
*/
|
||||||
public $globals = [];
|
public $globals = [];
|
||||||
/**
|
/**
|
||||||
* @var array Custom functions.
|
* @var array Custom functions.
|
||||||
* Keys of the array are names to call in template, values are names of functions or static methods of some class.
|
* Keys of the array are names to call in template, values are names of functions or static methods of some class.
|
||||||
* Example: `['rot13' => 'str_rot13', 'a' => '\yii\helpers\Html::a']`.
|
* Example: `['rot13' => 'str_rot13', 'a' => '\yii\helpers\Html::a']`.
|
||||||
* In the template you can use it like this: `{{ rot13('test') }}` or `{{ a('Login', 'site/login') | raw }}`.
|
* In the template you can use it like this: `{{ rot13('test') }}` or `{{ a('Login', 'site/login') | raw }}`.
|
||||||
*/
|
*/
|
||||||
public $functions = [];
|
public $functions = [];
|
||||||
/**
|
/**
|
||||||
* @var array Custom filters.
|
* @var array Custom filters.
|
||||||
* Keys of the array are names to call in template, values are names of functions or static methods of some class.
|
* Keys of the array are names to call in template, values are names of functions or static methods of some class.
|
||||||
* Example: `['rot13' => 'str_rot13', 'jsonEncode' => '\yii\helpers\Json::encode']`.
|
* Example: `['rot13' => 'str_rot13', 'jsonEncode' => '\yii\helpers\Json::encode']`.
|
||||||
* In the template you can use it like this: `{{ 'test'|rot13 }}` or `{{ model|jsonEncode }}`.
|
* In the template you can use it like this: `{{ 'test'|rot13 }}` or `{{ model|jsonEncode }}`.
|
||||||
*/
|
*/
|
||||||
public $filters = [];
|
public $filters = [];
|
||||||
/**
|
/**
|
||||||
* @var array Custom extensions.
|
* @var array Custom extensions.
|
||||||
* Example: `['Twig_Extension_Sandbox', 'Twig_Extension_Text']`
|
* Example: `['Twig_Extension_Sandbox', 'Twig_Extension_Text']`
|
||||||
*/
|
*/
|
||||||
public $extensions = [];
|
public $extensions = [];
|
||||||
/**
|
/**
|
||||||
* @var array Twig lexer options.
|
* @var array Twig lexer options.
|
||||||
* Example: Smarty-like syntax:
|
* Example: Smarty-like syntax:
|
||||||
* ```php
|
* ```php
|
||||||
* [
|
* [
|
||||||
* 'tag_comment' => ['{*', '*}'],
|
* 'tag_comment' => ['{*', '*}'],
|
||||||
* 'tag_block' => ['{', '}'],
|
* 'tag_block' => ['{', '}'],
|
||||||
* 'tag_variable' => ['{$', '}']
|
* 'tag_variable' => ['{$', '}']
|
||||||
* ]
|
* ]
|
||||||
* ```
|
* ```
|
||||||
* @see http://twig.sensiolabs.org/doc/recipes.html#customizing-the-syntax
|
* @see http://twig.sensiolabs.org/doc/recipes.html#customizing-the-syntax
|
||||||
*/
|
*/
|
||||||
public $lexerOptions = [];
|
public $lexerOptions = [];
|
||||||
/**
|
/**
|
||||||
* @var \Twig_Environment twig environment object that do all rendering twig templates
|
* @var \Twig_Environment twig environment object that do all rendering twig templates
|
||||||
*/
|
*/
|
||||||
public $twig;
|
public $twig;
|
||||||
@@ -118,7 +118,7 @@ class ViewRenderer extends BaseViewRenderer
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Adding global 'void' function (usage: {{void(App.clientScript.registerScriptFile(...))}})
|
// Adding global 'void' function (usage: {{void(App.clientScript.registerScriptFile(...))}})
|
||||||
$this->twig->addFunction('void', new \Twig_Function_Function(function($argument){
|
$this->twig->addFunction('void', new \Twig_Function_Function(function ($argument) {
|
||||||
}));
|
}));
|
||||||
|
|
||||||
$this->twig->addFunction('path', new \Twig_Function_Function(function ($path, $args = []) {
|
$this->twig->addFunction('path', new \Twig_Function_Function(function ($path, $args = []) {
|
||||||
@@ -162,7 +162,7 @@ class ViewRenderer extends BaseViewRenderer
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds custom functions
|
* Adds custom functions
|
||||||
* @param array $functions @see self::$functions
|
* @param array $functions @see self::$functions
|
||||||
*/
|
*/
|
||||||
public function addFunctions($functions)
|
public function addFunctions($functions)
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class ViewRendererStaticClassProxy
|
|||||||
{
|
{
|
||||||
private $_staticClassName;
|
private $_staticClassName;
|
||||||
|
|
||||||
public function __construct($staticClassName) {
|
public function __construct($staticClassName)
|
||||||
|
{
|
||||||
$this->_staticClassName = $staticClassName;
|
$this->_staticClassName = $staticClassName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user