carbon-field-icon
carbon-field-icon copied to clipboard
Fatal error after installing with composer
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
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?
I too am facing the same problem.
Any help would be appreciated.
Having the same problem here, any fix ?
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/"
}
}
}
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