- Issue created by @jacek061192
- π·πΈSerbia bojanz
Errors like this happen when the version of the module is not in sync with the version of the library.
Don't know how, but your site is definitely not running commerceguys/addressing v.1.4.2 as it has the right typehints:
https://github.com/commerceguys/addressing/blob/v1.4.2/src/Country/Count... - πΊπΈUnited States TolstoyDotCom L.A.
The error message indicates that the definitions of loadDefinitions are different, yet they seem the same. Are you sure about the versions?
What do the lines around line 43 of web/modules/contrib/address/src/Repository/CountryRepository.php look like?
If you search (probably in your vendor directory) for CountryRepository.php, what do the lines around the line with loadDefinitions look like?
- π΅π±Poland jacek061192
Hi guys, thanks for quick response. Below you can find the whole code from the file. Indeed, it is different than the one in the repository https://github.com/commerceguys/addressing/blob/v1.4.2/src/Country/Count...
Below you can see the photo from Ludwig module.
Do you have any ideas how it can be fixed?
<?php namespace Drupal\address\Repository; use CommerceGuys\Addressing\Country\CountryRepository as ExternalCountryRepository; use Drupal\Core\Cache\CacheBackendInterface; use Drupal\Core\Language\LanguageManagerInterface; /** * Defines the country repository. * * Countries are stored on disk in JSON and cached inside Drupal. */ class CountryRepository extends ExternalCountryRepository { /** * The cache backend. * * @var \Drupal\Core\Cache\CacheBackendInterface */ protected $cache; /** * Creates a CountryRepository instance. * * @param \Drupal\Core\Cache\CacheBackendInterface $cache * The cache backend. * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager * The language manager. */ public function __construct(CacheBackendInterface $cache, LanguageManagerInterface $language_manager) { parent::__construct(); $this->cache = $cache; // The getCurrentLanguage() fallback is a workaround for core bug #2684873. $language = $language_manager->getConfigOverrideLanguage() ?: $language_manager->getCurrentLanguage(); $this->defaultLocale = $language->getId(); } /** * {@inheritdoc} */ protected function loadDefinitions(string $locale): array { if (isset($this->definitions[$locale])) { return $this->definitions[$locale]; } $cache_key = 'address.countries.' . $locale; if ($cached = $this->cache->get($cache_key)) { $this->definitions[$locale] = $cached->data; } else { $filename = $this->definitionPath . $locale . '.json'; $this->definitions[$locale] = json_decode(file_get_contents($filename), TRUE); $this->cache->set($cache_key, $this->definitions[$locale], CacheBackendInterface::CACHE_PERMANENT, ['countries']); } return $this->definitions[$locale]; } }
- π·πΈSerbia bojanz
You will have to use Ludwig (admin/reports/packages) to update/reinstall the library.
Docs:
https://www.drupal.org/docs/contributed-modules/ludwig/maintenance-of-lu... β - π΅π±Poland jacek061192
I deleted from Address module the library, v1.4.2. I used the command drush cr to rebuild cache. The library appeared again in the catalogue with new date, screenshot below. Unfortunately, it did not change anything. Is it possible that this library might be in another place? Because while installing Address module I didn't use Ludwig module. Everything was installed through composer.
- π΅π±Poland jacek061192
I have already found the solution. It turned out the library was automatically added to Vendor each time the composer update was enabled. The only thing that needed to be done was deleting the library front Vendor. Everything is nΓ³w working properly. Thanks for your advice.
- Status changed to Fixed
over 1 year ago 10:33pm 11 June 2023 Automatically closed - issue fixed for 2 weeks with no activity.