Publisher does not support the Fluid field type. Please do not contact asking when support will be available.

If you purchased an add-on from expressionengine.com, be sure to visit boldminded.com/claim to add the license to your account here on boldminded.com.

Ticket: Unable to bootstrap EE for CLI usage due to Publisher module

Status Resolved
Add-on / Version Publisher
Severity Blocker
EE Version 27

beeplogic

Jun 23, 2013

I’m trying to bootstrap EE in a CLI script (cron usage) to pull entries for indexing in Solr.

My script is based off the ExpressionEngine-Bootstrap script found here:  https://github.com/rsanchez/ExpressionEngine-Bootstrap

I did have an issue with the module attempting to redirect but I managed to get around that by faking the URL and setting $_SERVER[‘REQUEST_URI’] to ‘/solr.gif’.

The publisher module is now not loading the Publisher_helper_url class:

Fatal error: Call to undefined method Publisher_helper_url::get_referrer_url() in /mnt/Project/public/cms/system/expressionengine/third_party/publisher/libraries/Publisher/Publisher_session.php on line 780

Call Stack:
  0.0005   251200   1. {main}() /mnt/Project/public/solr/index.php:0
  0.0030   266296   2. Cron::run() /mnt/Project/public/solr/index.php:155
  0.0070   269392   3. Cron->execute() /mnt/Project/public/solr/index.php:35
  0.0157   496632   4. Solr_Importer_Ee->update() /mnt/Project/public/solr/index.php:72
  0.0157   496664   5. Solr_Importer_Ee->_bootstrap() /mnt/Project/public/solr/classes/Solr/Importer/Ee.php:13
  0.0558   1717824   6. CI_Controller->__construct() /mnt/Project/public/solr/classes/Solr/Importer/Ee.php:106
  0.0561   1718976   7. CI_Loader->ci_autoloader() /mnt/Project/public/cms/system/codeigniter/system/core/Controller.php:51
  0.0594   1725616   8. EE_Loader->library() /mnt/Project/public/cms/system/codeigniter/system/core/Loader.php:1047
  0.0594   1727600   9. CI_Loader->library() /mnt/Project/public/cms/system/expressionengine/core/EE_Loader.php:142
  0.0595   1729792 10. CI_Loader->_ci_load_class() /mnt/Project/public/cms/system/codeigniter/system/core/Loader.php:138
  0.0623   1916672 11. CI_Loader->_ci_init_class() /mnt/Project/public/cms/system/codeigniter/system/core/Loader.php:873
  0.0634   1919784 12. EE_Core->__construct() /mnt/Project/public/cms/system/codeigniter/system/core/Loader.php:972
  0.0634   1919816 13. EE_Core->_initialize_core() /mnt/Project/public/cms/system/expressionengine/libraries/Core.php:37
  0.1388   3999928 14. EE_Loader->library() /mnt/Project/public/cms/system/expressionengine/libraries/Core.php:282
  0.1388   4001792 15. CI_Loader->library() /mnt/Project/public/cms/system/expressionengine/core/EE_Loader.php:142
  0.1389   4003832 16. CI_Loader->_ci_load_class() /mnt/Project/public/cms/system/codeigniter/system/core/Loader.php:138
  0.1425   4292256 17. CI_Loader->_ci_init_class() /mnt/Project/public/cms/system/codeigniter/system/core/Loader.php:873
  0.1441   4297528 18. EE_Session->__construct() /mnt/Project/public/cms/system/codeigniter/system/core/Loader.php:968
  0.1457   4306528 19. EE_Extensions->universal_call() /mnt/Project/public/cms/system/expressionengine/libraries/Session.php:152
  0.3707   4888464 20. call_user_func_array() /mnt/Project/public/cms/system/expressionengine/libraries/Extensions.php:241
  0.3707   4888896 21. Publisher_ext->sessions_start() /mnt/Project/public/cms/system/expressionengine/libraries/Extensions.php:241
  0.5415   7873320 22. Publisher_session->go() /mnt/Project/public/cms/system/expressionengine/third_party/publisher/ext.publisher.php:228
  0.5883   7883032 23. Publisher_session->set_url_prefix() /mnt/Project/public/cms/system/expressionengine/third_party/publisher/libraries/Publisher/Publisher_session.php:208
  0.5970   7886744 24. Publisher_session->set_language() /mnt/Project/public/cms/system/expressionengine/third_party/publisher/libraries/Publisher/Publisher_session.php:416
  0.6035   7888792 25. Publisher_session->get_tracker() /mnt/Project/public/cms/system/expressionengine/third_party/publisher/libraries/Publisher/Publisher_session.php:517

I’ve done this before with expression engine, but not was not using the publisher module. If there are any methods/things to consider when pulling content that would be great to know. Thanks!

 

#1

BoldMinded (Brian)

Try adding this if line to the top of sessions_end()

public function sessions_end($session)
    {
        if (PHP_SAPI === "cli") return $session;
#2

beeplogic

I tried you suggestion but it didn’t work, as that method is never called. The fatal error still occurs.

I can get past the error if I change ext.publisher.php, line 225:

if (ee()->publisher_setting->get(‘enabled’) && PHP_SAPI !== “cli”)

My question is whether whether its common to modify a core module file or if you would include this hack/fix in future releases?

#3

BoldMinded (Brian)

oops, you’re right. I forgot go() was called in start, not end.

I’ll include this in the official release, its not uncommon to bootstrap EE for CLI usage.

Login to reply