Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No valid procedure loader could be found #55

Closed
nwtn opened this issue Apr 17, 2015 · 1 comment
Closed

No valid procedure loader could be found #55

nwtn opened this issue Apr 17, 2015 · 1 comment

Comments

@nwtn
Copy link

nwtn commented Apr 17, 2015

Hi,

I'm having a lot of trouble loading a custom procedure. No matter what I try, I get the an error that says Fatal error: Uncaught exception 'InvalidArgumentException' with message 'No valid procedure loader could be found to load the 'procedure_svg2png' procedure template.'. The full output is below.

This is happening even if I follow the example at http://jonnnnyw.github.io/php-phantomjs/advanced.html exactly:

test.php:

<?php
require_once __DIR__ . '/vendor/autoload.php';
use JonnyW\PhantomJs\Client;
use JonnyW\PhantomJs\DependencyInjection\ServiceContainer;
$location = 'src';
$serviceContainer = ServiceContainer::getInstance();
$procedureLoader = $serviceContainer->get('procedure_loader_factory')->createProcedureLoader($location);
$client = Client::getInstance();
$client->getProcedureLoader()->addLoader($procedureLoader);
$request = $client->getMessageFactory()->createRequest();
$request->setType('test');
$response = $client->getMessageFactory()->createResponse();
$client->send($request, $response);
?>

src/test.proc:

phantom.exit(0);
phantom.onError = function(msg, trace) {
    phantom.exit(1);
};

output:

dnewton@newtron ~/Sites/gh/php-respimg 👍  php test.php

Fatal error: Uncaught exception 'InvalidArgumentException' with message 'No valid procedure loader could be found to load the 'procedure_test' procedure template.' in /Users/dnewton/Sites/gh/php-respimg/vendor/twig/twig/lib/Twig/Template.php on line 328

InvalidArgumentException: No valid procedure loader could be found to load the 'procedure_test' procedure template. in /Users/dnewton/Sites/gh/php-respimg/vendor/jonnyw/php-phantomjs/src/JonnyW/PhantomJs/Procedure/ChainProcedureLoader.php on line 99

Call Stack:
    0.0004     232664   1. {main}() /Users/dnewton/Sites/gh/php-respimg/test.php:0
    0.0524    3232976   2. JonnyW\PhantomJs\Client->send() /Users/dnewton/Sites/gh/php-respimg/test.php:22
    0.0530    3267256   3. JonnyW\PhantomJs\Procedure\ProcedureCompiler->compile() /Users/dnewton/Sites/gh/php-respimg/vendor/jonnyw/php-phantomjs/src/JonnyW/PhantomJs/Client.php:160
    0.0531    3268280   4. JonnyW\PhantomJs\Template\TemplateRenderer->render() /Users/dnewton/Sites/gh/php-respimg/vendor/jonnyw/php-phantomjs/src/JonnyW/PhantomJs/Procedure/ProcedureCompiler.php:100
    0.0531    3268328   5. Twig_Environment->render() /Users/dnewton/Sites/gh/php-respimg/vendor/jonnyw/php-phantomjs/src/JonnyW/PhantomJs/Template/TemplateRenderer.php:47
    0.0751    4063688   6. Twig_Template->render() /Users/dnewton/Sites/gh/php-respimg/vendor/twig/twig/lib/Twig/Environment.php:293
    0.0751    4080928   7. Twig_Template->display() /Users/dnewton/Sites/gh/php-respimg/vendor/twig/twig/lib/Twig/Template.php:298
    0.0752    4081848   8. Twig_Template->displayWithErrorHandling() /Users/dnewton/Sites/gh/php-respimg/vendor/twig/twig/lib/Twig/Template.php:287
    0.0752    4082056   9. __TwigTemplate_fc117057b6dcbf5ee855b38ef9dfffab555607edaa690c38c31a337dce0461f2->doDisplay() /Users/dnewton/Sites/gh/php-respimg/vendor/twig/twig/lib/Twig/Template.php:313
    0.0775    4090944  10. Twig_Template->getAttribute() /Users/dnewton/Sites/gh/php-respimg/vendor/twig/twig/lib/Twig/Environment.php(332) : eval()'d code:227
    0.0775    4091768  11. call_user_func_array:{/Users/dnewton/Sites/gh/php-respimg/vendor/twig/twig/lib/Twig/Template.php:499}() /Users/dnewton/Sites/gh/php-respimg/vendor/twig/twig/lib/Twig/Template.php:499
    0.0776    4092104  12. JonnyW\PhantomJs\Procedure\ProcedureCompiler->load() /Users/dnewton/Sites/gh/php-respimg/vendor/twig/twig/lib/Twig/Template.php:499
    0.0776    4092152  13. JonnyW\PhantomJs\Procedure\ChainProcedureLoader->loadTemplate() /Users/dnewton/Sites/gh/php-respimg/vendor/jonnyw/php-phantomjs/src/JonnyW/PhantomJs/Procedure/ProcedureCompiler.php:126

Twig_Error_Runtime: An exception has been thrown during the rendering of a template ("No valid procedure loader could be found to load the 'procedure_test' procedure template.") in "
[% autoescape false %]
{% autoescape false %}

/**
 * Set up page and script parameters
 */
var page       = require('webpage').create(),
    system     = require('system'),
    response   = {},
    debug      = [],
    logs       = [],
    procedure  = {};

/**
 * Global variables
 */
[[ engine.load('global_variables') ]]

/**
 * Define width & height of capture
 */
[[ engine.load('page_clip_rect') ]]

/**
 * Define paper size.
 */
[[ engine.load('page_paper_size') ]]

/**
 * Define viewport size.
 */
[[ engine.load('page_viewport_size') ]]


/**
 * Define custom headers.
 */
[[ engine.load('page_custom_headers') ]]

/**
 * Page settings
 */
[[ engine.load('page_settings') ]]

/**
 * On resource timeout
 */
page.onResourceTimeout = function (error) {
    [[ engine.load('page_on_resource_timeout') ]]
};

/**
 * On resource received
 */
page.onResourceReceived = function (resource) {
    [[ engine.load('page_on_resource_received') ]]
};

/**
 * Handle page errors
 */
page.onError = function (msg, trace) {
    [[ engine.load('page_on_error') ]]
};

/**
 * Handle global errors
 */
phantom.onError = function(msg, trace) {
    [[ engine.load('phantom_on_error') ]]
};

/**
 * Open page
 */
page.open ('{{ input.getUrl() }}', '{{ input.getMethod() }}', '{{ input.getBody() }}', function (status) {
    [[ engine.load('page_open') ]]
});

/**
 * Execute procedure
 */
procedure.execute = function (status) {
    [[ engine.load( 'procedure_' ~ procedure_type ) ]]
};

{% endautoescape %}
[% endautoescape %]" at line 85. in /Users/dnewton/Sites/gh/php-respimg/vendor/twig/twig/lib/Twig/Template.php on line 328

Call Stack:
    0.0004     232664   1. {main}() /Users/dnewton/Sites/gh/php-respimg/test.php:0
    0.0524    3232976   2. JonnyW\PhantomJs\Client->send() /Users/dnewton/Sites/gh/php-respimg/test.php:22
    0.0530    3267256   3. JonnyW\PhantomJs\Procedure\ProcedureCompiler->compile() /Users/dnewton/Sites/gh/php-respimg/vendor/jonnyw/php-phantomjs/src/JonnyW/PhantomJs/Client.php:160
    0.0531    3268280   4. JonnyW\PhantomJs\Template\TemplateRenderer->render() /Users/dnewton/Sites/gh/php-respimg/vendor/jonnyw/php-phantomjs/src/JonnyW/PhantomJs/Procedure/ProcedureCompiler.php:100
    0.0531    3268328   5. Twig_Environment->render() /Users/dnewton/Sites/gh/php-respimg/vendor/jonnyw/php-phantomjs/src/JonnyW/PhantomJs/Template/TemplateRenderer.php:47
    0.0751    4063688   6. Twig_Template->render() /Users/dnewton/Sites/gh/php-respimg/vendor/twig/twig/lib/Twig/Environment.php:293

dnewton@newtron ~/Sites/gh/php-respimg
@jonnnnyw
Copy link
Owner

jonnnnyw commented Feb 2, 2016

I would try making your location path absolute. By setting it to just 'src' it assumes it is relative to where the script is being executed which isn't reliable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants