Webloader\InvalidArgumentException po upgradu na nette 2.2.3
- James_Scott
- Člen | 55
Ahoj, upgradoval jsem Nette na 2.2.3 a najednou mi vyhazuje vyjimku Webloader (konkretne toto hlasi Tracy:
258: /**
259: * @param callback $filter
260: * @throws InvalidArgumentException
261: */
262: public function addFilter($filter)
263: {
264: if (!is_callable($filter)) {
265: throw new InvalidArgumentException('Filter is not callable.');
266: }
267:
268: $this->filters[] = $filter;
269: }
Ten Webloader vola TexylaLoader, ktery jsem nemenil –
$files->addFiles(array(
// core
"texyla/js/texyla.js",
"texyla/js/selection.js",
"texyla/js/texy.js",
"texyla/js/buttons.js",
"texyla/js/dom.js",
"texyla/js/view.js",
"texyla/js/ajaxupload.js",
"texyla/js/window.js",
// languages
"texyla/languages/cs.js",
"texyla/languages/sk.js",
"texyla/languages/en.js",
// plugins
"texyla/plugins/keys/keys.js",
"texyla/plugins/resizableTextarea/resizableTextarea.js",
"texyla/plugins/img/img.js",
"texyla/plugins/table/table.js",
"texyla/plugins/link/link.js",
"texyla/plugins/emoticon/emoticon.js",
"texyla/plugins/symbol/symbol.js",
"texyla/plugins/files/files.js",
"texyla/plugins/color/color.js",
"texyla/plugins/textTransform/textTransform.js",
"texyla/plugins/youtube/youtube.js",
"texyla/plugins/gravatar/gravatar.js",
"js/texyla-init.js",
));
$compiler = \WebLoader\Compiler::createJsCompiler($files, __DIR__ . "/../../www/webtemp/");
// setup filter
$compiler->addFilter($filter);
Mohl by me nekdo nakopnout, co s tim? :)
- James_Scott
- Člen | 55
Promenna $filter se prijima v konstruktoru, tato metoda vola ten TexylaLoader
/**
* Texyla loader factory
* @return TexylaLoader
*/
protected function createComponentTexyla()
{
$baseUri = $this->context->httpRequest->url->baseUrl;
$filter = new \WebLoader\Filter\VariablesFilter(array(
"baseUri" => $baseUri,
"previewPath" => $this->link("Texyla:preview"),
"filesPath" => $this->link("Texyla:listFiles"),
"filesUploadPath" => $this->link("Texyla:upload"),
"filesMkDirPath" => $this->link("Texyla:mkDir"),
"filesRenamePath" => $this->link("Texyla:rename"),
"filesDeletePath" => $this->link("Texyla:delete"),
));
$texyla = new \TexylaLoader($filter, $baseUri . "webtemp");
return $texyla;
}
- James_Scott
- Člen | 55
A tady je dump $filter
Dumped variables
WebLoader\Filter\VariablesFilter #8f40
startVariable private => "{{$" (3)
endVariable private => "}}" (2)
variables private => array (7)
baseUri => "http://localhost/blog/www/" (26)
previewPath => "/blog/www/texyla/preview" (24)
filesPath => "/blog/www/texyla/list-files" (27)
filesUploadPath => "/blog/www/texyla/upload" (23)
filesMkDirPath => "/blog/www/texyla/mk-dir" (23)
filesRenamePath => "/blog/www/texyla/rename" (23)
filesDeletePath => "/blog/www/texyla/delete" (23)
- Filip Procházka
- Moderator | 4668
Upgradoval jsi jenom Nette nebo i Webloader?
Ta výjimka znamená, že to co tam předáváš jako $filter
není callable. Callable znamená, že obsah proměnné jde
zavolat jako funkce a předat tomu argumenty. Nastuduj si prosím jak funguje
funkce is_callable.
A až to pochopíš, tak se sem vrať a a ukaž nám přesně co se
předává do té metody addFilter
, protože jsi nám ukázal pouze
co se předává do TexylaLoader
.
- James_Scott
- Člen | 55
Tak tohle by snad mělo být ono – když to zakomentuji, tak se texyla
normálně zobrazí.
Odkud by se měla brát ta statická JSMin:minify?
// minifying JS
60: $compiler->addFilter("JSMin::minify");
Edit: Tak už jsem na to kápl, scházel mi tam celý soubor jsmin.php..
Díky za nakopnutí !
Editoval James_Scott (21. 10. 2014 14:38)