Skip to content
This repository has been archived by the owner on Jan 20, 2024. It is now read-only.

[BUG] config.php file is already present in my project #153

Open
2 of 4 tasks
Sokulev opened this issue Oct 11, 2019 · 5 comments
Open
2 of 4 tasks

[BUG] config.php file is already present in my project #153

Sokulev opened this issue Oct 11, 2019 · 5 comments
Labels

Comments

@Sokulev
Copy link

Sokulev commented Oct 11, 2019

Describe the bug
I'm using Magento.
config.php file is already present in my project in root dir.
I don't want / can't alter it
class ET_Client is trying to load it first to get settings instead of using $params when class instantiated.

Causing error:
Uncaught exception 'Exception' with message 'baseUrl is null: Must be provided in config file when instantiating ET_Client' in /src/LittlePassports/lpmage/vendor/salesforce-mc/fuel-sdk-php/src/ET_Client.php on line 131

To Reproduce
Have empty config.php file in your app root folder.

Expected behavior
ET_Client should use params supplied during instantiation or / and config file should be named differently than config.php.

Environment

  • SDK Version [e.g. 1.4.0]
  • PHP version 5.6

The bug has the severity

  • Critical: The defect affects critical functionality or critical data. It does not have a workaround.
  • Major: The defect affects major functionality or major data. It has a workaround but is not obvious and is difficult.
  • Minor: The defect affects minor functionality or non-critical data. It has an easy workaround.
  • Trivial: The defect does not affect functionality or data. It does not even need a workaround. It does not impact productivity or efficiency. It is merely an inconvenience.
@Sokulev Sokulev added the bug label Oct 11, 2019
@alessandrofilira
Copy link

I've same problem with a Symfony application, any news? Thanks.

@garek007
Copy link

garek007 commented Jan 3, 2020

You can move or create your own class for the config.php code. it doesn't have to live in the root.

@aalwash
Copy link

aalwash commented Feb 13, 2020

Seriously, how difficult is it to add an extra optional parameter in the ET_Client constructor to avoid reading config.php?

function __construct($getWSDL = false, $debug = false, $params = null) 
	{

to

function __construct($getWSDL = false, $debug = false, $params = null, $readConfig = true) {

    //....
    if($readConfig && file_exists(realpath('config.php'))) {

    }
    
    // ...
}

That simple :)

aalwash added a commit to squeezely/FuelSDK-PHP that referenced this issue Feb 13, 2020
Sometimes you have already a config.php file in your framework for other purposes (see salesforce-marketingcloud#153)

So I've added a readConfigFromFile (default true, to keep it backward compatible)
Now you can control if the config file should be used, or overwrite all params with the $params argument
@aalwash
Copy link

aalwash commented Feb 13, 2020

There you go a PR ;)

@sp72
Copy link

sp72 commented Jul 10, 2020

It's ugly but it works...

$bak = getcwd();
chdir('/where/there/is/no/config.php/file...');
$client = new ET_Client(false, false, $params);
chdir($bak);

I hope it will be fixed soon !

Other solution :
Instead of searching the config.php first, read the $params. If empty, search for the file, no constructor modification.

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

No branches or pull requests

5 participants