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

Fatal error after installing with composer #11

Open
peter-brennan opened this issue Jan 8, 2020 · 5 comments
Open

Fatal error after installing with composer #11

peter-brennan opened this issue Jan 8, 2020 · 5 comments

Comments

@peter-brennan
Copy link

Hi, i have used composer to require this plugin, although once it is required I am getting the following fatal error.

[08-Jan-2020 22:23:32 UTC] PHP Fatal error: Uncaught Error: Call to undefined function Carbon_Fields\Provider\add_filter() in /Applications/MAMP/htdocs/bindi/vendor/htmlburger/carbon-fields/core/Provider/Container_Condition_Provider.php:254
Stack trace:
#0 /Applications/MAMP/htdocs/bindi/vendor/htmlburger/carbon-fields/core/Provider/Container_Condition_Provider.php(21): Carbon_Fields\Provider\Container_Condition_Provider->install_container_conditions(Object(Carbon_Fields\Pimple\Container))
#1 /Applications/MAMP/htdocs/bindi/vendor/htmlburger/carbon-fields/core/Pimple/Container.php(274): Carbon_Fields\Provider\Container_Condition_Provider->register(Object(Carbon_Fields\Pimple\Container))
#2 /Applications/MAMP/htdocs/bindi/vendor/htmlburger/carbon-fields/core/Carbon_Fields.php(385): Carbon_Fields\Pimple\Container->register(Object(Carbon_Fields\Provider\Container_Condition_Provider))
#3 /Applications/MAMP/htdocs/bindi/vendor/htmlburger/carbon-fields/core/Carbon_Fields.php(69): Carbon_Fields\Carbon_Fields::get_default_ioc()
#4 /Applications/MAMP/htdocs/bin in /Applications/MAMP/htdocs/bindi/vendor/htmlburger/carbon-fields/core/Provider/Container_Condition_Provider.php on line 254

Any help with this error is appreciated.

Peter

@AlexandreSA
Copy link

Hi, i have used composer to require this plugin, although once it is required I am getting the following fatal error.

[08-Jan-2020 22:23:32 UTC] PHP Fatal error: Uncaught Error: Call to undefined function Carbon_Fields\Provider\add_filter() in /Applications/MAMP/htdocs/bindi/vendor/htmlburger/carbon-fields/core/Provider/Container_Condition_Provider.php:254
Stack trace:
#0 /Applications/MAMP/htdocs/bindi/vendor/htmlburger/carbon-fields/core/Provider/Container_Condition_Provider.php(21): Carbon_Fields\Provider\Container_Condition_Provider->install_container_conditions(Object(Carbon_Fields\Pimple\Container))
#1 /Applications/MAMP/htdocs/bindi/vendor/htmlburger/carbon-fields/core/Pimple/Container.php(274): Carbon_Fields\Provider\Container_Condition_Provider->register(Object(Carbon_Fields\Pimple\Container))
#2 /Applications/MAMP/htdocs/bindi/vendor/htmlburger/carbon-fields/core/Carbon_Fields.php(385): Carbon_Fields\Pimple\Container->register(Object(Carbon_Fields\Provider\Container_Condition_Provider))
#3 /Applications/MAMP/htdocs/bindi/vendor/htmlburger/carbon-fields/core/Carbon_Fields.php(69): Carbon_Fields\Carbon_Fields::get_default_ioc()
#4 /Applications/MAMP/htdocs/bin in /Applications/MAMP/htdocs/bindi/vendor/htmlburger/carbon-fields/core/Provider/Container_Condition_Provider.php on line 254

Any help with this error is appreciated.

Peter

I had the same problem. Does anyone have any solutions?

@golchha21
Copy link

I too am facing the same problem.

Any help would be appreciated.

@Romaixn
Copy link

Romaixn commented Aug 19, 2021

Having the same problem here, any fix ?

@AlexandreSA
Copy link

Having the same problem here, any fix ?

How do I use [boilerplate bedrock] (https://roots.io/bedrock/). I created a mu-plugin with everything I need and it works fine.

Bootstrap.php

<?php

use Carbon_Fields\Carbon_Fields;
use Carbon_Fields\Pimple\Container as PimpleContainer;
use Carbon_Field_Icon\Icon_Field;
use Carbon_Field_Icon\Providers\Custom_Icon_Provider;

define( 'Carbon_Field_Icon\\VERSION', '3.0.0' );
define( 'Carbon_Field_Icon\\DIR', dirname( __DIR__ ) );

Carbon_Fields::extend( Icon_Field::class, function( $container ) {
	return new Icon_Field( $container['arguments']['type'], $container['arguments']['name'], $container['arguments']['label'] );
} );

Carbon_Fields::instance()->ioc['icon_field_providers'] = function () {
	return new PimpleContainer();
};

Carbon_Fields::instance()->ioc['icon_field_providers'][ 'custom-icons' ] = static function( $container ) {
	return new Custom_Icon_Provider;
};

Icon_Field::add_provider( [ 'custom-icons' ] );

do_action( 'carbon_fields_icon_field_loaded' );

Custom_Icon_Provider.php

<?php

namespace Carbon_Field_Icon\Providers;

class Custom_Icon_Provider implements Icon_Provider_Interface {

	/**
	 * Reads the data and prepares the options for usage.
	 */
	public function parse_options() {
		$options = [];
		$files = glob( get_template_directory() . '/../resources/images/svg-sprite/*.svg' );

		foreach ( $files as $icon ) {
			$file = pathinfo( $icon );

			$options[ $file['filename'] ] = [
				'name' => $file['filename'],
				'icon' => get_template_directory_uri() . "/../resources/images/svg-sprite/{$file['basename']}",
				'id' => 'custom-icon-' . $file['filename'],
				'class' => 'custom-menu-class',
				'search_terms' => [ 'shop', 'checkout', 'product' ],
			];
		}

		return $options;
	}
}

composer.json

{
    ...
    "autoload": {
        "files": [
            "core/bootstrap.php"
        ],
        "psr-4": {
            "Carbon_Field_Icon\\": "core/"
        }
    }
}

@Romaixn
Copy link

Romaixn commented Sep 2, 2021

Can you make a repo with your mu-plugin inside @AlexandreSA ? I could test with my configuration to see if it works better this way

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

4 participants