diff --git a/.env.example b/.env.example index 39547ca..fc2584f 100644 --- a/.env.example +++ b/.env.example @@ -37,7 +37,6 @@ CAFEL_PASSWORD= MAIL_INVALID_CAFEL_DATA=equipe.web@ldc.fr MAIL_INVALID_CAFEL_DATA_IMAGE=equipe.web@ldc.fr MAIL_INVALID_XML=equipe.web@ldc.fr -MAIL_LIST_SERVICEWEB=equipe.web@ldc.fr ## LDC WEB STATUS CHECKER LDC_STATUS_CHECKER_API_KEY="MY_KEY" diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9452827..d1d7d4d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,11 +1,11 @@ -image: $CI_REGISTRY/service-web-lab/ldc-web-images-docker/ldcweb-qa:php7.3-1.0 - stages: - Security - CodingStandards + - Builds composer-security: stage: Security + image: $CI_REGISTRY/service-web-lab/ldc-web-images-docker/ldcweb-qa:php7.3-1.0 script: - local-php-security-checker --format=json --path=./composer.lock > composer-security-checker-report.json artifacts: @@ -14,9 +14,13 @@ composer-security: paths: - composer-security-checker-report.json allow_failure: true + needs: [] npm-security: stage: Security + image: node:17.9.1 + before_script: + - npm install --location=global audit-ci@^6 script: - audit-ci -p npm -o json > npm-security-checker-report.json artifacts: @@ -25,9 +29,11 @@ npm-security: paths: - npm-security-checker-report.json allow_failure: true + needs: [] phpcs: stage: CodingStandards + image: $CI_REGISTRY/service-web-lab/ldc-web-images-docker/ldcweb-qa:php7.3-1.0 before_script: - composer config gitlab-token.gitlab.com $CI_DEPLOY_USER $CI_DEPLOY_PASSWORD - composer install @@ -44,3 +50,26 @@ phpcs: reports: junit: phpcs-report.xml allow_failure: false + needs: + - composer-security + - npm-security + +front-build: + stage: Builds + image: node:17.9.1 + before_script: + - npm install + cache: + paths: + - node_modules/ + script: + - npm run prod > front-build-report.json + artifacts: + when: on_failure + expose_as: 'front-build-report' + paths: + - front-build-report.json + allow_failure: false + needs: + - phpcs + diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 134d8c4..9b4c8d9 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -30,11 +30,11 @@ class Kernel extends ConsoleKernel protected function schedule(Schedule $schedule) { // * Jobs cafel sur queue cafel - $schedule->job(CafelFoodJob::class, 'cafel')->onOneServer()->everyThreeHours(); - $schedule->job(CafelBeaVolJob::class, 'cafel')->onOneServer()->everyThreeHours(); - $schedule->job(CafelMepEggJob::class, 'cafel')->onOneServer()->everyThreeHours(); - $schedule->job(CafelEggBreederJob::class, 'cafel')->onOneServer()->everyThreeHours(); - $schedule->job(CafelPoultryBreederJob::class, 'cafel')->onOneServer()->everyThreeHours(); + $schedule->job(CafelFoodJob::class, 'cafel')->onOneServer()->everySixHours(); + $schedule->job(CafelBeaVolJob::class, 'cafel')->onOneServer()->everySixHours(); + $schedule->job(CafelMepEggJob::class, 'cafel')->onOneServer()->everySixHours(); + $schedule->job(CafelEggBreederJob::class, 'cafel')->onOneServer()->everySixHours(); + $schedule->job(CafelPoultryBreederJob::class, 'cafel')->onOneServer()->everySixHours(); $schedule->job(XmlFluxEggJob::class, 'tracea')->onOneServer()->dailyAt('02:00'); $schedule->job(XmlFluxPoultryJob::class, 'tracea')->onOneServer()->dailyAt('22:00'); diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 7e068c5..acadc47 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -4,8 +4,8 @@ namespace App\Exceptions; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Mail; -use Throwable; -use Kwaadpepper\ExceptionHandler\Exceptions\ExceptionHandler; +use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; +use Sentry\Laravel\Integration; class Handler extends ExceptionHandler { @@ -27,18 +27,19 @@ class Handler extends ExceptionHandler ]; /** - * Report or log an exception. + * Register the exception handling callbacks for the application. * - * @param \Throwable $exception * @return void */ - public function report(Throwable $exception) + public function register() { - if ($exception instanceof CafelApiImageFetchException) { - $this->reportCafelApiImageErrorException($exception); - return; - } - parent::report($exception); + $this->reportable(function (\Throwable $e) { + if ($e instanceof CafelApiImageFetchException) { + $this->reportCafelApiImageErrorException($e); + return; + } + Integration::captureUnhandledException($e); + }); } /** diff --git a/app/Jobs/Arcadia/RemoveOldXmlEntries.php b/app/Jobs/Arcadia/RemoveOldXmlEntries.php index 794e5aa..a7efe52 100644 --- a/app/Jobs/Arcadia/RemoveOldXmlEntries.php +++ b/app/Jobs/Arcadia/RemoveOldXmlEntries.php @@ -23,7 +23,7 @@ class RemoveOldXmlEntries } try { $q = TraceaEgg::query(); - $q->where('dcr', '<=', now()->subMonths(config('tracea.keepEggMonths', 12)))->destroy(); + $q->where('dcr', '<=', now()->subMonths(config('tracea.keepEggMonths', 12))); $q->delete(); } catch (\Exception $e) { report($e); diff --git a/app/Lib/ExceptionsHelper.php b/app/Lib/ExceptionsHelper.php new file mode 100644 index 0000000..5b42252 --- /dev/null +++ b/app/Lib/ExceptionsHelper.php @@ -0,0 +1,190 @@ +setModules([]); + $event->setOsContext(null); + + /** @var \Sentry\ExceptionDataBag[] */ + $exceptionBag = []; + foreach ($event->getExceptions() as $exceptionDataBag) { + $exceptionBag[] = self::getAnonymizedSentryException($exceptionDataBag); + } + $event->setExceptions($exceptionBag); + return $event; + } + + /** + * Anonimize Sentry Exception bag + * + * @param \Sentry\ExceptionDataBag $exceptionDataBag + * @return \Sentry\ExceptionDataBag + */ + private static function getAnonymizedSentryException( + \Sentry\ExceptionDataBag $exceptionDataBag + ): \Sentry\ExceptionDataBag { + $exceptionDataBag->setValue(self::getAnonymizedMessage($exceptionDataBag->getValue())); + if ($stackTrace = $exceptionDataBag->getStacktrace()) { + $exceptionDataBag->setStacktrace(self::getAnonymizedSentryStackTrace($stackTrace)); + } + return $exceptionDataBag; + } + + /** + * Anonymise sentry stacktrace + * + * @param \Sentry\Stacktrace $stackTrace + * @return \Sentry\Stacktrace + */ + private static function getAnonymizedSentryStackTrace(\Sentry\Stacktrace $stackTrace): \Sentry\Stacktrace + { + /** @var \Sentry\Frame[] */ + $frames = \array_reverse($stackTrace->getFrames(), true); + $i = \count($frames) - 1; + // * Remove all but keep first (index.php). + while ($i-- > 0) { + $stackTrace->removeFrame(count($stackTrace->getFrames()) - 1); + } + foreach ($frames as $index => $frame) { + $frame->setPostContext([]); + $frame->setPreContext([]); + $frame->setContextLine(''); + $frame->setVars(self::getAnonymizedSentryParams($frame->getVars())); + $stackTrace->addFrame($frame); + if ($index === 0) { + $stackTrace->removeFrame(count($stackTrace->getFrames()) - 1); + } + } + return $stackTrace; + } + + /** + * Get anonymized sentry params + * + * @param mixed[] $params + * @return string[] + */ + private static function getAnonymizedSentryParams(array $params): array + { + foreach ($params as &$param) { + $type = \strtolower(\gettype($param)); + if (\is_string($param)) { + $type = \explode(' ', \trim($param))[0] ?? null; + } + switch ($type) { + case 'Lambda': + case 'Object': + continue 2; + case 'array': + $param = sprintf('Array(%d)', \count($param)); + continue 2; + default: + if (\is_numeric($param)) { + $param = \ucfirst($type); + continue 2; + } + if (\is_string($param)) { + $param = sprintf('String(%d)', \strlen($param)); + continue 2; + } + } //end switch + } //end foreach + return $params; + } + + + /** + * Anonymize at least Sql queries + * + * @param string $message + * @return string + */ + public static function getAnonymizedMessage(string $message): string + { + $message = \preg_replace('/^(.*)( \(SQL:.*\))$/', '$1', $message) ?? $message; + if ($sqlPos = \strpos($message, 'to use near')) { + $message = \mb_strcut($message, 0, $sqlPos); + } + return $message; + } + + /** + * Anonymize stack trace + * + * @param \Throwable $e + * @return string + */ + public static function getAnonymizedStackTrace(\Throwable $e): string + { + $projectPath = \realpath(\sprintf('%s/../', \app_path())); + $traceStack = $e->getTrace(); + $traceStr = ''; + $maxStackStage = 0; + foreach ($traceStack as $stackStage => $stack) { + $maxStackStage = $stackStage; + $traceStr .= \sprintf( + '#%s %s(%d): ', + $stackStage, + str_replace($projectPath, '', $stack['file'] ?? ''), + $stack['line'] ?? '' + ); + if (isset($stack['class'])) { + $traceStr .= "{$stack['class']}->{$stack['function']}("; + if (isset($stack['args'])) { + $traceStr .= self::handleArgs($stack); + } + $traceStr .= ")\n"; + } elseif (isset($stack['function'])) { + $traceStr .= "{$stack['function']}("; + if (isset($stack['args'])) { + $traceStr .= self::handleArgs($stack); + } + $traceStr .= ")\n"; + } + } //end foreach + $maxStackStage++; + $traceStr .= "#$maxStackStage {main}"; + return $traceStr; + } + + /** + * Handle Args + * + * @param array $stack + * @return string + */ + public static function handleArgs(array $stack): string + { + $traceArgs = ''; + $argsCount = count($stack['args']); + for ($i = 0; $i < $argsCount; $i++) { + $type = \gettype($stack['args'][$i]); + switch ($type) { + case 'object': + $traceArgs .= sprintf('Object(%s)', \get_class($stack['args'][$i])); + break; + case 'array': + $traceArgs .= sprintf('Array(%d)', \count($stack['args'][$i])); + break; + case 'string': + $traceArgs .= sprintf('String(%d)', \strlen($stack['args'][$i])); + break; + default: + $traceArgs .= \gettype($stack['args'][$i]); + } + $traceArgs .= ($i !== ($argsCount - 1) ? ',' : ''); + } + return $traceArgs; + } +} diff --git a/app/Models/CafelEggBreeder.php b/app/Models/CafelEggBreeder.php index 18079d8..76028ad 100644 --- a/app/Models/CafelEggBreeder.php +++ b/app/Models/CafelEggBreeder.php @@ -99,8 +99,8 @@ class CafelEggBreeder extends Model { // * EVENT CLOSURES. static::creating(function (self $model) { - return self::areInuavCodesUniques($model); - return self::isEdeCodeUnique($model); + self::areInuavCodesUniques($model); + self::isEdeCodeUnique($model); }); static::updating(function (self $model) { if ($model->getRawOriginal('path_picture_1') !== $model->path_picture_1) { @@ -109,8 +109,8 @@ class CafelEggBreeder extends Model if ($model->getRawOriginal('path_picture_2') !== $model->path_picture_2) { Storage::delete(\public_path($model->getRawOriginal('path_picture_2'))); } - return self::areInuavCodesUniques($model); - return self::isEdeCodeUnique($model); + self::areInuavCodesUniques($model); + self::isEdeCodeUnique($model); }); static::deleting(function (self $model) { if ($model->getRawOriginal('path_picture_1')) { diff --git a/composer.json b/composer.json index 125958c..91dde85 100644 --- a/composer.json +++ b/composer.json @@ -17,7 +17,6 @@ "fideloper/proxy": "^4.0", "guzzlehttp/guzzle": "^7.4", "kwaadpepper/enum": "^2.1", - "kwaadpepper/exception-handler": "^0.0.6", "kwaadpepper/refresh-sitemap": "^1.0", "laravel/framework": "^8.0", "laravel/tinker": "^2.0", @@ -27,6 +26,7 @@ "ldc/web-status-checker-laravel": "^1.0", "mews/purifier": "^3.3", "nesbot/carbon": "^2.29", + "sentry/sentry-laravel": "^3.1", "spatie/laravel-mix-preload": "^1.3" }, "require-dev": { diff --git a/composer.lock b/composer.lock index 88e1167..8f4bb53 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "3b8a85ff97e17a3645c1bb8dcb6a15bf", + "content-hash": "3f2fa59ef64f72b47a4cbfa337719a44", "packages": [ { "name": "arondeparon/laravel-request-sanitizer", @@ -129,6 +129,72 @@ ], "time": "2021-08-15T20:50:18+00:00" }, + { + "name": "clue/stream-filter", + "version": "v1.6.0", + "source": { + "type": "git", + "url": "https://github.com/clue/stream-filter.git", + "reference": "d6169430c7731d8509da7aecd0af756a5747b78e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/clue/stream-filter/zipball/d6169430c7731d8509da7aecd0af756a5747b78e", + "reference": "d6169430c7731d8509da7aecd0af756a5747b78e", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.36" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "Clue\\StreamFilter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering" + } + ], + "description": "A simple and modern approach to stream filtering in PHP", + "homepage": "https://github.com/clue/php-stream-filter", + "keywords": [ + "bucket brigade", + "callback", + "filter", + "php_user_filter", + "stream", + "stream_filter_append", + "stream_filter_register" + ], + "support": { + "issues": "https://github.com/clue/stream-filter/issues", + "source": "https://github.com/clue/stream-filter/tree/v1.6.0" + }, + "funding": [ + { + "url": "https://clue.engineering/support", + "type": "custom" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2022-02-21T13:15:14+00:00" + }, { "name": "doctrine/cache", "version": "2.2.0", @@ -1259,6 +1325,64 @@ ], "time": "2022-06-20T21:43:03+00:00" }, + { + "name": "http-interop/http-factory-guzzle", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/http-interop/http-factory-guzzle.git", + "reference": "8f06e92b95405216b237521cc64c804dd44c4a81" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/http-interop/http-factory-guzzle/zipball/8f06e92b95405216b237521cc64c804dd44c4a81", + "reference": "8f06e92b95405216b237521cc64c804dd44c4a81", + "shasum": "" + }, + "require": { + "guzzlehttp/psr7": "^1.7||^2.0", + "php": ">=7.3", + "psr/http-factory": "^1.0" + }, + "provide": { + "psr/http-factory-implementation": "^1.0" + }, + "require-dev": { + "http-interop/http-factory-tests": "^0.9", + "phpunit/phpunit": "^9.5" + }, + "suggest": { + "guzzlehttp/psr7": "Includes an HTTP factory starting in version 2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Http\\Factory\\Guzzle\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "An HTTP Factory using Guzzle PSR7", + "keywords": [ + "factory", + "http", + "psr-17", + "psr-7" + ], + "support": { + "issues": "https://github.com/http-interop/http-factory-guzzle/issues", + "source": "https://github.com/http-interop/http-factory-guzzle/tree/1.2.0" + }, + "time": "2021-07-21T13:50:14+00:00" + }, { "name": "intervention/image", "version": "2.7.2", @@ -1343,6 +1467,65 @@ ], "time": "2022-05-21T17:30:32+00:00" }, + { + "name": "jean85/pretty-package-versions", + "version": "2.0.5", + "source": { + "type": "git", + "url": "https://github.com/Jean85/pretty-package-versions.git", + "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/ae547e455a3d8babd07b96966b17d7fd21d9c6af", + "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2.0.0", + "php": "^7.1|^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.17", + "jean85/composer-provided-replaced-stub-package": "^1.0", + "phpstan/phpstan": "^0.12.66", + "phpunit/phpunit": "^7.5|^8.5|^9.4", + "vimeo/psalm": "^4.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Jean85\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alessandro Lai", + "email": "alessandro.lai85@gmail.com" + } + ], + "description": "A library to get pretty versions strings of installed dependencies", + "keywords": [ + "composer", + "package", + "release", + "versions" + ], + "support": { + "issues": "https://github.com/Jean85/pretty-package-versions/issues", + "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.5" + }, + "time": "2021-10-08T21:21:46+00:00" + }, { "name": "kwaadpepper/enum", "version": "2.1.3", @@ -1403,67 +1586,6 @@ }, "time": "2022-07-28T15:18:54+00:00" }, - { - "name": "kwaadpepper/exception-handler", - "version": "0.0.6", - "source": { - "type": "git", - "url": "https://github.com/Kwaadpepper/exception-handler.git", - "reference": "9e17a9c0a43755d91cb98717e3fc7ba17db0c1c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Kwaadpepper/exception-handler/zipball/9e17a9c0a43755d91cb98717e3fc7ba17db0c1c7", - "reference": "9e17a9c0a43755d91cb98717e3fc7ba17db0c1c7", - "shasum": "" - }, - "require": { - "illuminate/support": "~7|~8", - "laravel/framework": "~7|~8" - }, - "require-dev": { - "orchestra/testbench": "^6.13", - "phpunit/phpunit": "~9.0", - "squizlabs/php_codesniffer": "^3.5" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Kwaadpepper\\ExceptionHandler\\ExceptionHandlerServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "Kwaadpepper\\ExceptionHandler\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jérémy Munsch", - "email": "github@jeremydev.ovh", - "homepage": "https://jeremydev.ovh" - } - ], - "description": "Send emails when exceptions occurs", - "homepage": "https://github.com/kwaadpepper/exception-handler", - "keywords": [ - "email", - "exception", - "laravel", - "policies" - ], - "support": { - "issues": "https://github.com/Kwaadpepper/exception-handler/issues", - "source": "https://github.com/Kwaadpepper/exception-handler/tree/0.0.6" - }, - "time": "2021-12-01T08:54:11+00:00" - }, { "name": "kwaadpepper/refresh-sitemap", "version": "1.0.0", @@ -2831,6 +2953,83 @@ }, "time": "2022-09-04T07:30:47+00:00" }, + { + "name": "nyholm/psr7", + "version": "1.5.1", + "source": { + "type": "git", + "url": "https://github.com/Nyholm/psr7.git", + "reference": "f734364e38a876a23be4d906a2a089e1315be18a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Nyholm/psr7/zipball/f734364e38a876a23be4d906a2a089e1315be18a", + "reference": "f734364e38a876a23be4d906a2a089e1315be18a", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "php-http/message-factory": "^1.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "http-interop/http-factory-tests": "^0.9", + "php-http/psr7-integration-tests": "^1.0", + "phpunit/phpunit": "^7.5 || 8.5 || 9.4", + "symfony/error-handler": "^4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "psr-4": { + "Nyholm\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com" + }, + { + "name": "Martijn van der Ven", + "email": "martijn@vanderven.se" + } + ], + "description": "A fast PHP7 implementation of PSR-7", + "homepage": "https://tnyholm.se", + "keywords": [ + "psr-17", + "psr-7" + ], + "support": { + "issues": "https://github.com/Nyholm/psr7/issues", + "source": "https://github.com/Nyholm/psr7/tree/1.5.1" + }, + "funding": [ + { + "url": "https://github.com/Zegnat", + "type": "github" + }, + { + "url": "https://github.com/nyholm", + "type": "github" + } + ], + "time": "2022-06-22T07:13:36+00:00" + }, { "name": "opis/closure", "version": "3.6.3", @@ -2896,6 +3095,395 @@ }, "time": "2022-01-27T09:35:39+00:00" }, + { + "name": "php-http/client-common", + "version": "2.6.0", + "source": { + "type": "git", + "url": "https://github.com/php-http/client-common.git", + "reference": "45db684cd4e186dcdc2b9c06b22970fe123796c0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/client-common/zipball/45db684cd4e186dcdc2b9c06b22970fe123796c0", + "reference": "45db684cd4e186dcdc2b9c06b22970fe123796c0", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0", + "php-http/httplug": "^2.0", + "php-http/message": "^1.6", + "php-http/message-factory": "^1.0", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0", + "symfony/options-resolver": "~4.0.15 || ~4.1.9 || ^4.2.1 || ^5.0 || ^6.0", + "symfony/polyfill-php80": "^1.17" + }, + "require-dev": { + "doctrine/instantiator": "^1.1", + "guzzlehttp/psr7": "^1.4", + "nyholm/psr7": "^1.2", + "phpspec/phpspec": "^5.1 || ^6.3 || ^7.1", + "phpspec/prophecy": "^1.10.2", + "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.3" + }, + "suggest": { + "ext-json": "To detect JSON responses with the ContentTypePlugin", + "ext-libxml": "To detect XML responses with the ContentTypePlugin", + "php-http/cache-plugin": "PSR-6 Cache plugin", + "php-http/logger-plugin": "PSR-3 Logger plugin", + "php-http/stopwatch-plugin": "Symfony Stopwatch plugin" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Http\\Client\\Common\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "Common HTTP Client implementations and tools for HTTPlug", + "homepage": "http://httplug.io", + "keywords": [ + "client", + "common", + "http", + "httplug" + ], + "support": { + "issues": "https://github.com/php-http/client-common/issues", + "source": "https://github.com/php-http/client-common/tree/2.6.0" + }, + "time": "2022-09-29T09:59:43+00:00" + }, + { + "name": "php-http/discovery", + "version": "1.14.3", + "source": { + "type": "git", + "url": "https://github.com/php-http/discovery.git", + "reference": "31d8ee46d0215108df16a8527c7438e96a4d7735" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/discovery/zipball/31d8ee46d0215108df16a8527c7438e96a4d7735", + "reference": "31d8ee46d0215108df16a8527c7438e96a4d7735", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "nyholm/psr7": "<1.0" + }, + "require-dev": { + "graham-campbell/phpspec-skip-example-extension": "^5.0", + "php-http/httplug": "^1.0 || ^2.0", + "php-http/message-factory": "^1.0", + "phpspec/phpspec": "^5.1 || ^6.1" + }, + "suggest": { + "php-http/message": "Allow to use Guzzle, Diactoros or Slim Framework factories" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "Http\\Discovery\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "Finds installed HTTPlug implementations and PSR-7 message factories", + "homepage": "http://php-http.org", + "keywords": [ + "adapter", + "client", + "discovery", + "factory", + "http", + "message", + "psr7" + ], + "support": { + "issues": "https://github.com/php-http/discovery/issues", + "source": "https://github.com/php-http/discovery/tree/1.14.3" + }, + "time": "2022-07-11T14:04:40+00:00" + }, + { + "name": "php-http/httplug", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/php-http/httplug.git", + "reference": "f640739f80dfa1152533976e3c112477f69274eb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/httplug/zipball/f640739f80dfa1152533976e3c112477f69274eb", + "reference": "f640739f80dfa1152533976e3c112477f69274eb", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0", + "php-http/promise": "^1.1", + "psr/http-client": "^1.0", + "psr/http-message": "^1.0" + }, + "require-dev": { + "friends-of-phpspec/phpspec-code-coverage": "^4.1", + "phpspec/phpspec": "^5.1 || ^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eric GELOEN", + "email": "geloen.eric@gmail.com" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "HTTPlug, the HTTP client abstraction for PHP", + "homepage": "http://httplug.io", + "keywords": [ + "client", + "http" + ], + "support": { + "issues": "https://github.com/php-http/httplug/issues", + "source": "https://github.com/php-http/httplug/tree/2.3.0" + }, + "time": "2022-02-21T09:52:22+00:00" + }, + { + "name": "php-http/message", + "version": "1.13.0", + "source": { + "type": "git", + "url": "https://github.com/php-http/message.git", + "reference": "7886e647a30a966a1a8d1dad1845b71ca8678361" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/message/zipball/7886e647a30a966a1a8d1dad1845b71ca8678361", + "reference": "7886e647a30a966a1a8d1dad1845b71ca8678361", + "shasum": "" + }, + "require": { + "clue/stream-filter": "^1.5", + "php": "^7.1 || ^8.0", + "php-http/message-factory": "^1.0.2", + "psr/http-message": "^1.0" + }, + "provide": { + "php-http/message-factory-implementation": "1.0" + }, + "require-dev": { + "ergebnis/composer-normalize": "^2.6", + "ext-zlib": "*", + "guzzlehttp/psr7": "^1.0", + "laminas/laminas-diactoros": "^2.0", + "phpspec/phpspec": "^5.1 || ^6.3 || ^7.1", + "slim/slim": "^3.0" + }, + "suggest": { + "ext-zlib": "Used with compressor/decompressor streams", + "guzzlehttp/psr7": "Used with Guzzle PSR-7 Factories", + "laminas/laminas-diactoros": "Used with Diactoros Factories", + "slim/slim": "Used with Slim Framework PSR-7 implementation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "files": [ + "src/filters.php" + ], + "psr-4": { + "Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "HTTP Message related tools", + "homepage": "http://php-http.org", + "keywords": [ + "http", + "message", + "psr-7" + ], + "support": { + "issues": "https://github.com/php-http/message/issues", + "source": "https://github.com/php-http/message/tree/1.13.0" + }, + "time": "2022-02-11T13:41:14+00:00" + }, + { + "name": "php-http/message-factory", + "version": "v1.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-http/message-factory.git", + "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/message-factory/zipball/a478cb11f66a6ac48d8954216cfed9aa06a501a1", + "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1", + "shasum": "" + }, + "require": { + "php": ">=5.4", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "Factory interfaces for PSR-7 HTTP Message", + "homepage": "http://php-http.org", + "keywords": [ + "factory", + "http", + "message", + "stream", + "uri" + ], + "support": { + "issues": "https://github.com/php-http/message-factory/issues", + "source": "https://github.com/php-http/message-factory/tree/master" + }, + "time": "2015-12-19T14:08:53+00:00" + }, + { + "name": "php-http/promise", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-http/promise.git", + "reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/promise/zipball/4c4c1f9b7289a2ec57cde7f1e9762a5789506f88", + "reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "friends-of-phpspec/phpspec-code-coverage": "^4.3.2", + "phpspec/phpspec": "^5.1.2 || ^6.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Http\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Joel Wurtz", + "email": "joel.wurtz@gmail.com" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "Promise used for asynchronous HTTP requests", + "homepage": "http://httplug.io", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/php-http/promise/issues", + "source": "https://github.com/php-http/promise/tree/1.1.0" + }, + "time": "2020-07-07T09:29:14+00:00" + }, { "name": "phpoption/phpoption", "version": "1.9.0", @@ -3170,6 +3758,61 @@ }, "time": "2020-06-29T06:28:15+00:00" }, + { + "name": "psr/http-factory", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "shasum": "" + }, + "require": { + "php": ">=7.0.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory/tree/master" + }, + "time": "2019-04-30T12:38:16+00:00" + }, { "name": "psr/http-message", "version": "1.0.1", @@ -3621,6 +4264,260 @@ ], "time": "2021-09-25T23:10:38+00:00" }, + { + "name": "sentry/sdk", + "version": "3.3.0", + "source": { + "type": "git", + "url": "https://github.com/getsentry/sentry-php-sdk.git", + "reference": "d0678fc7274dbb03046ed05cb24eb92945bedf8e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/getsentry/sentry-php-sdk/zipball/d0678fc7274dbb03046ed05cb24eb92945bedf8e", + "reference": "d0678fc7274dbb03046ed05cb24eb92945bedf8e", + "shasum": "" + }, + "require": { + "http-interop/http-factory-guzzle": "^1.0", + "sentry/sentry": "^3.9", + "symfony/http-client": "^4.3|^5.0|^6.0" + }, + "type": "metapackage", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Sentry", + "email": "accounts@sentry.io" + } + ], + "description": "This is a metapackage shipping sentry/sentry with a recommended HTTP client.", + "homepage": "http://sentry.io", + "keywords": [ + "crash-reporting", + "crash-reports", + "error-handler", + "error-monitoring", + "log", + "logging", + "sentry" + ], + "support": { + "issues": "https://github.com/getsentry/sentry-php-sdk/issues", + "source": "https://github.com/getsentry/sentry-php-sdk/tree/3.3.0" + }, + "funding": [ + { + "url": "https://sentry.io/", + "type": "custom" + }, + { + "url": "https://sentry.io/pricing/", + "type": "custom" + } + ], + "time": "2022-10-11T09:05:00+00:00" + }, + { + "name": "sentry/sentry", + "version": "3.12.0", + "source": { + "type": "git", + "url": "https://github.com/getsentry/sentry-php.git", + "reference": "4902f43640963ed45517fd7c1da7fdd5511bb304" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/4902f43640963ed45517fd7c1da7fdd5511bb304", + "reference": "4902f43640963ed45517fd7c1da7fdd5511bb304", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "guzzlehttp/promises": "^1.4", + "guzzlehttp/psr7": "^1.8.4|^2.1.1", + "jean85/pretty-package-versions": "^1.5|^2.0.4", + "php": "^7.2|^8.0", + "php-http/async-client-implementation": "^1.0", + "php-http/client-common": "^1.5|^2.0", + "php-http/discovery": "^1.11", + "php-http/httplug": "^1.1|^2.0", + "php-http/message": "^1.5", + "psr/http-factory": "^1.0", + "psr/http-message-implementation": "^1.0", + "psr/log": "^1.0|^2.0|^3.0", + "symfony/options-resolver": "^3.4.43|^4.4.30|^5.0.11|^6.0", + "symfony/polyfill-php80": "^1.17" + }, + "conflict": { + "php-http/client-common": "1.8.0", + "raven/raven": "*" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.19|3.4.*", + "http-interop/http-factory-guzzle": "^1.0", + "monolog/monolog": "^1.6|^2.0|^3.0", + "nikic/php-parser": "^4.10.3", + "php-http/mock-client": "^1.3", + "phpbench/phpbench": "^1.0", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.3", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^8.5.14|^9.4", + "symfony/phpunit-bridge": "^5.2|^6.0", + "vimeo/psalm": "^4.17" + }, + "suggest": { + "monolog/monolog": "Allow sending log messages to Sentry by using the included Monolog handler." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.12.x-dev" + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Sentry\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sentry", + "email": "accounts@sentry.io" + } + ], + "description": "A PHP SDK for Sentry (http://sentry.io)", + "homepage": "http://sentry.io", + "keywords": [ + "crash-reporting", + "crash-reports", + "error-handler", + "error-monitoring", + "log", + "logging", + "sentry" + ], + "support": { + "issues": "https://github.com/getsentry/sentry-php/issues", + "source": "https://github.com/getsentry/sentry-php/tree/3.12.0" + }, + "funding": [ + { + "url": "https://sentry.io/", + "type": "custom" + }, + { + "url": "https://sentry.io/pricing/", + "type": "custom" + } + ], + "time": "2022-11-22T10:57:08+00:00" + }, + { + "name": "sentry/sentry-laravel", + "version": "3.1.2", + "source": { + "type": "git", + "url": "https://github.com/getsentry/sentry-laravel.git", + "reference": "1626336dc478abcd8aa5cb128b69423299216bf9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/1626336dc478abcd8aa5cb128b69423299216bf9", + "reference": "1626336dc478abcd8aa5cb128b69423299216bf9", + "shasum": "" + }, + "require": { + "illuminate/support": "^6.0 | ^7.0 | ^8.0 | ^9.0", + "nyholm/psr7": "^1.0", + "php": "^7.2 | ^8.0", + "sentry/sdk": "^3.3", + "sentry/sentry": "^3.12", + "symfony/psr-http-message-bridge": "^1.0 | ^2.0" + }, + "conflict": { + "laravel/lumen-framework": "*" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.11", + "laravel/framework": "^6.0 | ^7.0 | ^8.0 | ^9.0", + "mockery/mockery": "^1.3", + "orchestra/testbench": "^4.7 | ^5.1 | ^6.0 | ^7.0", + "phpunit/phpunit": "^8.4 | ^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev", + "dev-2.x": "2.x-dev", + "dev-1.x": "1.x-dev", + "dev-0.x": "0.x-dev" + }, + "laravel": { + "providers": [ + "Sentry\\Laravel\\ServiceProvider", + "Sentry\\Laravel\\Tracing\\ServiceProvider" + ], + "aliases": { + "Sentry": "Sentry\\Laravel\\Facade" + } + } + }, + "autoload": { + "psr-0": { + "Sentry\\Laravel\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Sentry", + "email": "accounts@sentry.io" + } + ], + "description": "Laravel SDK for Sentry (https://sentry.io)", + "homepage": "https://sentry.io", + "keywords": [ + "crash-reporting", + "crash-reports", + "error-handler", + "error-monitoring", + "laravel", + "log", + "logging", + "sentry" + ], + "support": { + "issues": "https://github.com/getsentry/sentry-laravel/issues", + "source": "https://github.com/getsentry/sentry-laravel/tree/3.1.2" + }, + "funding": [ + { + "url": "https://sentry.io/", + "type": "custom" + }, + { + "url": "https://sentry.io/pricing/", + "type": "custom" + } + ], + "time": "2022-11-23T13:25:02+00:00" + }, { "name": "spatie/browsershot", "version": "3.40.2", @@ -4795,6 +5692,171 @@ ], "time": "2022-07-29T07:37:50+00:00" }, + { + "name": "symfony/http-client", + "version": "v5.4.16", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client.git", + "reference": "0f43af12a27733a060b92396b7bde84a4376da0a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client/zipball/0f43af12a27733a060b92396b7bde84a4376da0a", + "reference": "0f43af12a27733a060b92396b7bde84a4376da0a", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/http-client-contracts": "^2.4", + "symfony/polyfill-php73": "^1.11", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.0|^2|^3" + }, + "provide": { + "php-http/async-client-implementation": "*", + "php-http/client-implementation": "*", + "psr/http-client-implementation": "1.0", + "symfony/http-client-implementation": "2.4" + }, + "require-dev": { + "amphp/amp": "^2.5", + "amphp/http-client": "^4.2.1", + "amphp/http-tunnel": "^1.0", + "amphp/socket": "^1.1", + "guzzlehttp/promises": "^1.4", + "nyholm/psr7": "^1.0", + "php-http/httplug": "^1.0|^2.0", + "psr/http-client": "^1.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4.13|^5.1.5|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpClient\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-client/tree/v5.4.16" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-09T11:27:39+00:00" + }, + { + "name": "symfony/http-client-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70", + "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "suggest": { + "symfony/http-client-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\HttpClient\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to HTTP clients", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-04-12T15:48:08+00:00" + }, { "name": "symfony/http-foundation", "version": "v5.4.12", @@ -5066,6 +6128,75 @@ ], "time": "2022-08-19T14:24:03+00:00" }, + { + "name": "symfony/options-resolver", + "version": "v5.4.11", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "54f14e36aa73cb8f7261d7686691fd4d75ea2690" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/54f14e36aa73cb8f7261d7686691fd4d75ea2690", + "reference": "54f14e36aa73cb8f7261d7686691fd4d75ea2690", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php73": "~1.0", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\OptionsResolver\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an improved replacement for the array_replace PHP function", + "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], + "support": { + "source": "https://github.com/symfony/options-resolver/tree/v5.4.11" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T13:00:38+00:00" + }, { "name": "symfony/polyfill-ctype", "version": "v1.26.0", @@ -5945,6 +7076,94 @@ ], "time": "2022-06-27T16:58:25+00:00" }, + { + "name": "symfony/psr-http-message-bridge", + "version": "v2.1.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/psr-http-message-bridge.git", + "reference": "a125b93ef378c492e274f217874906fb9babdebb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/a125b93ef378c492e274f217874906fb9babdebb", + "reference": "a125b93ef378c492e274f217874906fb9babdebb", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "psr/http-message": "^1.0", + "symfony/http-foundation": "^4.4 || ^5.0 || ^6.0" + }, + "require-dev": { + "nyholm/psr7": "^1.1", + "psr/log": "^1.1 || ^2 || ^3", + "symfony/browser-kit": "^4.4 || ^5.0 || ^6.0", + "symfony/config": "^4.4 || ^5.0 || ^6.0", + "symfony/event-dispatcher": "^4.4 || ^5.0 || ^6.0", + "symfony/framework-bundle": "^4.4 || ^5.0 || ^6.0", + "symfony/http-kernel": "^4.4 || ^5.0 || ^6.0", + "symfony/phpunit-bridge": "^5.4@dev || ^6.0" + }, + "suggest": { + "nyholm/psr7": "For a super lightweight PSR-7/17 implementation" + }, + "type": "symfony-bridge", + "extra": { + "branch-alias": { + "dev-main": "2.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bridge\\PsrHttpMessage\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + } + ], + "description": "PSR HTTP message bridge", + "homepage": "http://symfony.com", + "keywords": [ + "http", + "http-message", + "psr-17", + "psr-7" + ], + "support": { + "issues": "https://github.com/symfony/psr-http-message-bridge/issues", + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.1.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-28T22:46:34+00:00" + }, { "name": "symfony/routing", "version": "v5.4.11", diff --git a/config/exception-handler.php b/config/exception-handler.php deleted file mode 100644 index 45d037f..0000000 --- a/config/exception-handler.php +++ /dev/null @@ -1,15 +0,0 @@ - !config('app.debug'), - - /** - * Put a developper secured mailbox in here - * so you can receive email if things go mad - */ - 'contactsList' => explode(',', env('MAIL_LIST_SERVICEWEB', 'equipe.web@ldc.fr')), -]; diff --git a/config/sentry.php b/config/sentry.php new file mode 100644 index 0000000..90b0133 --- /dev/null +++ b/config/sentry.php @@ -0,0 +1,62 @@ + env('SENTRY_LARAVEL_DSN', env('SENTRY_DSN')), + + // The release version of your application + // Example with dynamic git hash: trim(exec('git --git-dir ' . base_path('.git') . ' log --pretty="%h" -n1 HEAD')). + 'release' => env('SENTRY_RELEASE'), + + // When left empty or `null` the Laravel environment will be used. + 'environment' => env('SENTRY_ENVIRONMENT'), + + 'breadcrumbs' => [ + // Capture Laravel logs in breadcrumbs. + 'logs' => true, + + // Capture SQL queries in breadcrumbs. + 'sql_queries' => true, + + // Capture bindings on SQL queries logged in breadcrumbs. + 'sql_bindings' => true, + + // Capture queue job information in breadcrumbs. + 'queue_info' => true, + + // Capture command information in breadcrumbs. + 'command_info' => true, + ], + + 'tracing' => [ + // Trace queue jobs as their own transactions. + 'queue_job_transactions' => env('SENTRY_TRACE_QUEUE_ENABLED', false), + + // Capture queue jobs as spans when executed on the sync driver. + 'queue_jobs' => true, + + // Capture SQL queries as spans. + 'sql_queries' => true, + + // Try to find out where the SQL query originated from and add it to the query spans. + 'sql_origin' => true, + + // Capture views as spans. + 'views' => true, + + // Indicates if the tracing integrations supplied by Sentry should be loaded. + 'default_integrations' => true, + + // Indicates that requests without a matching route should be traced. + 'missing_routes' => false, + ], + + // @see: https://docs.sentry.io/platforms/php/guides/laravel/configuration/options/#send-default-pii + 'send_default_pii' => env('SENTRY_SEND_DEFAULT_PII', false), + + // @see: https://docs.sentry.io/platforms/php/guides/laravel/configuration/options/#traces-sample-rate + 'traces_sample_rate' => env('SENTRY_TRACES_SAMPLE_RATE') === null ? null : (float)env('SENTRY_TRACES_SAMPLE_RATE'), + + 'before_send' => [\App\Lib\ExceptionsHelper::class, 'sentryEventHandler'], + +]; diff --git a/database/seeders/PoultryPackshotsTableSeeder.php b/database/seeders/PoultryPackshotsTableSeeder.php index 9684f32..32118b4 100644 --- a/database/seeders/PoultryPackshotsTableSeeder.php +++ b/database/seeders/PoultryPackshotsTableSeeder.php @@ -3,10 +3,10 @@ namespace Database\Seeders; use Illuminate\Database\Seeder; +use Illuminate\Support\Facades\DB; class PoultryPackshotsTableSeeder extends Seeder { - /** * Auto generated seed file * @@ -14,2503 +14,2083 @@ class PoultryPackshotsTableSeeder extends Seeder */ public function run() { - + DB::table('poultry_packshots')->delete(); - \DB::table('poultry_packshots')->delete(); - - \DB::table('poultry_packshots')->insert(array ( - - array ( + DB::table('poultry_packshots')->insert([[ 'item_code' => '00000004', 'ean' => '3266980000042', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000004.004', 'ean' => '3266980000042', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000004.006', 'ean' => '3266980000042', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000004.007', 'ean' => '3266980000042', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000004.008', 'ean' => '3266980000042', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000008', 'ean' => '3266980000080', 'packshot_name' => 'Packshot_Poulet_Noir_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000008.004', 'ean' => '3266980000080', 'packshot_name' => 'Packshot_Poulet_Noir_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000008.007', 'ean' => '3266980000080', 'packshot_name' => 'Packshot_Poulet_Noir_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000008.008', 'ean' => '3266980000080', 'packshot_name' => 'Packshot_Poulet_Noir_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000013', 'ean' => '3266980000134', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000013.004', 'ean' => '3266980000134', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000013.007', 'ean' => '3266980000134', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000013.008', 'ean' => '3266980000134', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000243', 'ean' => '3266980002435', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000243.003', 'ean' => '3266980002435', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000243.006', 'ean' => '3266980002435', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000243.020', 'ean' => '3266980002435', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000344', 'ean' => '3266980003449', 'packshot_name' => 'Packshot_Poulet_Jaune_x4_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000344.003', 'ean' => '3266980003449', 'packshot_name' => 'Packshot_Poulet_Jaune_x4_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000344.006', 'ean' => '3266980003449', 'packshot_name' => 'Packshot_Poulet_Jaune_x4_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000344.020', 'ean' => '3266980003449', 'packshot_name' => 'Packshot_Poulet_Jaune_x4_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000361', 'ean' => '3266980003616', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000361.006', 'ean' => '3266980003616', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000361.012', 'ean' => '3266980003616', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000361.030', 'ean' => '3266980003616', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000408', 'ean' => '3266980004088', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000408.004', 'ean' => '3266980004088', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000408.006', 'ean' => '3266980004088', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000408.008', 'ean' => '3266980004088', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000546', 'ean' => '3266980005467', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000546.004', 'ean' => '3266980005467', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000546.005', 'ean' => '3266980005467', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000546.007', 'ean' => '3266980005467', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000546.008', 'ean' => '3266980005467', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000547', 'ean' => '3266980005474', 'packshot_name' => 'Packshot_Poulet_Noir_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000547.004', 'ean' => '3266980005474', 'packshot_name' => 'Packshot_Poulet_Noir_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000547.008', 'ean' => '3266980005474', 'packshot_name' => 'Packshot_Poulet_Noir_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000548', 'ean' => '3266980005481', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000548.004', 'ean' => '3266980005481', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000548.007', 'ean' => '3266980005481', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000548.008', 'ean' => '3266980005481', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000605', 'ean' => '3266980006051', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Escalopes fines_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000605.004', 'ean' => '3266980006051', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Escalopes fines_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000605.008', 'ean' => '3266980006051', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Escalopes fines_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000605.016', 'ean' => '3266980006051', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Escalopes fines_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000605.024', 'ean' => '3266980006051', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Escalopes fines_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000605.030', 'ean' => '3266980006051', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Escalopes fines_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000696', 'ean' => '3266980006969', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000696.003', 'ean' => '3266980006969', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000696.006', 'ean' => '3266980006969', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000696.012', 'ean' => '3266980006969', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000717', 'ean' => '3266980007171', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Pilons de poulet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000717.003', 'ean' => '3266980007171', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Pilons de poulet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000717.006', 'ean' => '3266980007171', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Pilons de poulet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000717.012', 'ean' => '3266980007171', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Pilons de poulet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000721', 'ean' => '3266980007218', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000721.003', 'ean' => '3266980007218', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000721.006', 'ean' => '3266980007218', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00000721.030', 'ean' => '3266980007218', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00004513', 'ean' => '3266980045135', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00004513.004', 'ean' => '3266980045135', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00004513.007', 'ean' => '3266980045135', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00004513.008', 'ean' => '3266980045135', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00007578', 'ean' => '3266980075781', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00007578.006', 'ean' => '3266980075781', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00007578.030', 'ean' => '3266980075781', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00007579', 'ean' => '3266980075798', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00007579.003', 'ean' => '3266980075798', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00007579.006', 'ean' => '3266980075798', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00007579.012', 'ean' => '3266980075798', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00010964', 'ean' => '3266980109646', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00010964.002', 'ean' => '3266980109646', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00010964.004', 'ean' => '3266980109646', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00010964.008', 'ean' => '3266980109646', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00010971', 'ean' => '3266980109714', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00010971.002', 'ean' => '3266980109714', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00010971.004', 'ean' => '3266980109714', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00010971.007', 'ean' => '3266980109714', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00010971.008', 'ean' => '3266980109714', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00011158', 'ean' => '3266980111588', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00011158.003', 'ean' => '3266980111588', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00011158.004', 'ean' => '3266980111588', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00011158.006', 'ean' => '3266980111588', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00011158.008', 'ean' => '3266980111588', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00011366', 'ean' => '3266980113667', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00011366.003', 'ean' => '3266980113667', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00011366.004', 'ean' => '3266980113667', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00011366.006', 'ean' => '3266980113667', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00011366.008', 'ean' => '3266980113667', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00013721', 'ean' => '3266980137212', 'packshot_name' => 'Packshot_Poulet_Jaune_Ailes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00013721.003', 'ean' => '3266980137212', 'packshot_name' => 'Packshot_Poulet_Jaune_Ailes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00013721.006', 'ean' => '3266980137212', 'packshot_name' => 'Packshot_Poulet_Jaune_Ailes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00013721.012', 'ean' => '3266980137212', 'packshot_name' => 'Packshot_Poulet_Jaune_Ailes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00018257', 'ean' => '3266980182571', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00018257.003', 'ean' => '3266980182571', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00018257.004', 'ean' => '3266980182571', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00018257.006', 'ean' => '3266980182571', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00018257.008', 'ean' => '3266980182571', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00024612', 'ean' => '3266980246129', 'packshot_name' => 'Packshot_Poulet_Blanc_Aiguillettes_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00024612.006', 'ean' => '3266980246129', 'packshot_name' => 'Packshot_Poulet_Blanc_Aiguillettes_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00024612.030', 'ean' => '3266980246129', 'packshot_name' => 'Packshot_Poulet_Blanc_Aiguillettes_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00027996', 'ean' => '3266980279967', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00027996.002', 'ean' => '3266980279967', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00027996.004', 'ean' => '3266980279967', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00027996.008', 'ean' => '3266980279967', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028287', 'ean' => '3266980282875', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028287.004', 'ean' => '3266980282875', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028287.006', 'ean' => '3266980282875', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028287.030', 'ean' => '3266980282875', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028288', 'ean' => '3266980282882', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028288.004', 'ean' => '3266980282882', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028288.006', 'ean' => '3266980282882', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028288.030', 'ean' => '3266980282882', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028289', 'ean' => '3266980282899', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Escalopes fines_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028289.004', 'ean' => '3266980282899', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Escalopes fines_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028289.008', 'ean' => '3266980282899', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Escalopes fines_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028289.012', 'ean' => '3266980282899', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Escalopes fines_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028289.030', 'ean' => '3266980282899', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Escalopes fines_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028290', 'ean' => '3266980282905', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Escalopes fines_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028290.004', 'ean' => '3266980282905', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Escalopes fines_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028290.008', 'ean' => '3266980282905', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Escalopes fines_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028290.030', 'ean' => '3266980282905', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Escalopes fines_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028291', 'ean' => '3266980282912', 'packshot_name' => 'Packshot_Poulet_Jaune_x1_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028291.004', 'ean' => '3266980282912', 'packshot_name' => 'Packshot_Poulet_Jaune_x1_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028291.006', 'ean' => '3266980282912', 'packshot_name' => 'Packshot_Poulet_Jaune_x1_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028291.012', 'ean' => '3266980282912', 'packshot_name' => 'Packshot_Poulet_Jaune_x1_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028292', 'ean' => '3266980282929', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028292.004', 'ean' => '3266980282929', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028292.006', 'ean' => '3266980282929', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028292.008', 'ean' => '3266980282929', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028292.012', 'ean' => '3266980282929', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028293', 'ean' => '3266980282936', 'packshot_name' => 'Packshot_Poulet_Aiguillettes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028293.004', 'ean' => '3266980282936', 'packshot_name' => 'Packshot_Poulet_Aiguillettes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028293.006', 'ean' => '3266980282936', 'packshot_name' => 'Packshot_Poulet_Aiguillettes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028293.012', 'ean' => '3266980282936', 'packshot_name' => 'Packshot_Poulet_Aiguillettes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028293.030', 'ean' => '3266980282936', 'packshot_name' => 'Packshot_Poulet_Aiguillettes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028294', 'ean' => '3266980282943', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028294.006', 'ean' => '3266980282943', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028294.030', 'ean' => '3266980282943', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028295', 'ean' => '3266980282950', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028295.006', 'ean' => '3266980282950', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00028295.030', 'ean' => '3266980282950', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00029445', 'ean' => '3266980294458', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00029445.004', 'ean' => '3266980294458', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00029445.006', 'ean' => '3266980294458', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00029445.012', 'ean' => '3266980294458', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00029446', 'ean' => '3266980294465', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00029446.004', 'ean' => '3266980294465', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00029446.006', 'ean' => '3266980294465', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00029446.012', 'ean' => '3266980294465', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00029449', 'ean' => '3266980294496', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00029449.006', 'ean' => '3266980294496', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00029449.012', 'ean' => '3266980294496', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00029449.018', 'ean' => '3266980294496', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00029684', 'ean' => '3266980296841', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00029684.004', 'ean' => '3266980296841', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00029684.007', 'ean' => '3266980296841', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00029684.008', 'ean' => '3266980296841', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00030763', 'ean' => '3266980307639', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00030763.007', 'ean' => '3266980307639', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00030763.008', 'ean' => '3266980307639', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00031114', 'ean' => '3266980311148', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031114.004', 'ean' => '3266980311148', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031868', 'ean' => '3266980318680', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031868.004', 'ean' => '3266980318680', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031868.006', 'ean' => '3266980318680', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031868.009', 'ean' => '3266980318680', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031868.012', 'ean' => '3266980318680', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031868.018', 'ean' => '3266980318680', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031869', 'ean' => '3266980318697', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031869.004', 'ean' => '3266980318697', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031869.006', 'ean' => '3266980318697', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031869.009', 'ean' => '3266980318697', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031869.012', 'ean' => '3266980318697', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031872', 'ean' => '3266980318727', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031872.004', 'ean' => '3266980318727', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031872.006', 'ean' => '3266980318727', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031872.008', 'ean' => '3266980318727', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031872.030', 'ean' => '3266980318727', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031873', 'ean' => '3266980318734', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031873.001', 'ean' => '3266980318734', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031873.004', 'ean' => '3266980318734', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031873.006', 'ean' => '3266980318734', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031873.008', 'ean' => '3266980318734', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031873.030', 'ean' => '3266980318734', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031881', 'ean' => '3266980318819', 'packshot_name' => 'Packshot_Poulet_Jaune_x3_Haut de cuisse_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031881.004', 'ean' => '3266980318819', 'packshot_name' => 'Packshot_Poulet_Jaune_x3_Haut de cuisse_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031881.006', 'ean' => '3266980318819', 'packshot_name' => 'Packshot_Poulet_Jaune_x3_Haut de cuisse_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031881.009', 'ean' => '3266980318819', 'packshot_name' => 'Packshot_Poulet_Jaune_x3_Haut de cuisse_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031881.012', 'ean' => '3266980318819', 'packshot_name' => 'Packshot_Poulet_Jaune_x3_Haut de cuisse_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031883', 'ean' => '3266980318833', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Pilons de poulet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031883.004', 'ean' => '3266980318833', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Pilons de poulet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031883.006', 'ean' => '3266980318833', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Pilons de poulet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031883.009', 'ean' => '3266980318833', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Pilons de poulet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031883.012', 'ean' => '3266980318833', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Pilons de poulet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031884', 'ean' => '3266980318840', 'packshot_name' => 'Packshot_Poulet_Blanc_Aiguillettes_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00031884.004', 'ean' => '3266980318840', 'packshot_name' => 'Packshot_Poulet_Blanc_Aiguillettes_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00031884.012', 'ean' => '3266980318840', 'packshot_name' => 'Packshot_Poulet_Blanc_Aiguillettes_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00031884.018', 'ean' => '3266980318840', 'packshot_name' => 'Packshot_Poulet_Blanc_Aiguillettes_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00031884.030', 'ean' => '3266980318840', 'packshot_name' => 'Packshot_Poulet_Blanc_Aiguillettes_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00031885', 'ean' => '3266980318857', 'packshot_name' => 'Packshot_Poulet_Jaune _Aiguillettes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031885.004', 'ean' => '3266980318857', 'packshot_name' => 'Packshot_Poulet_Jaune _Aiguillettes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031885.012', 'ean' => '3266980318857', 'packshot_name' => 'Packshot_Poulet_Jaune _Aiguillettes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031885.018', 'ean' => '3266980318857', 'packshot_name' => 'Packshot_Poulet_Jaune _Aiguillettes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00031885.030', 'ean' => '3266980318857', 'packshot_name' => 'Packshot_Poulet_Jaune _Aiguillettes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00034992', 'ean' => '3266980349929', 'packshot_name' => 'Packshot_Poulet_Noir_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00034992.002', 'ean' => '3266980349929', 'packshot_name' => 'Packshot_Poulet_Noir_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00034992.004', 'ean' => '3266980349929', 'packshot_name' => 'Packshot_Poulet_Noir_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00034992.008', 'ean' => '3266980349929', 'packshot_name' => 'Packshot_Poulet_Noir_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00038981', 'ean' => '3238990389813', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00038981.004', 'ean' => '3238990389813', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00038981.007', 'ean' => '3238990389813', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00038981.008', 'ean' => '3238990389813', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00038982', 'ean' => '3238990389820', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00038982.004', 'ean' => '3238990389820', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00038982.007', 'ean' => '3238990389820', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00038982.008', 'ean' => '3238990389820', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00038983', 'ean' => '3238990389837', 'packshot_name' => 'Packshot_Poulet_Noir_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00038983.004', 'ean' => '3238990389837', 'packshot_name' => 'Packshot_Poulet_Noir_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00038983.007', 'ean' => '3238990389837', 'packshot_name' => 'Packshot_Poulet_Noir_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00038983.008', 'ean' => '3238990389837', 'packshot_name' => 'Packshot_Poulet_Noir_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00040580', 'ean' => '3238990405803', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00040581', 'ean' => '3238990405810', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00040581.004', 'ean' => '3238990405810', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00040581.007', 'ean' => '3238990405810', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00040979', 'ean' => '3266980409791', 'packshot_name' => 'Packshot_Poulet_Jaune_x3_Escalopes de cuisse_LR.png', - ), - - array ( + ], + [ 'item_code' => '00040979.004', 'ean' => '3266980409791', 'packshot_name' => 'Packshot_Poulet_Jaune_x3_Escalopes de cuisse_LR.png', - ), - - array ( + ], + [ 'item_code' => '00040979.018', 'ean' => '3266980409791', 'packshot_name' => 'Packshot_Poulet_Jaune_x3_Escalopes de cuisse_LR.png', - ), - - array ( + ], + [ 'item_code' => '00041472', 'ean' => '3266980414726', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00041472.002', 'ean' => '3266980414726', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00041472.006', 'ean' => '3266980414726', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00041998', 'ean' => '3238990419985', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00041998.004', 'ean' => '3238990419985', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00041998.007', 'ean' => '3238990419985', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00041998.008', 'ean' => '3238990419985', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00046280', 'ean' => '3266980462802', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00046280.006', 'ean' => '3266980462802', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00046280.030', 'ean' => '3266980462802', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00046281', 'ean' => '3266980462819', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00046281.004', 'ean' => '3266980462819', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00046281.006', 'ean' => '3266980462819', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00046281.009', 'ean' => '3266980462819', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00046281.012', 'ean' => '3266980462819', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00047703.008', 'ean' => '3266980477035', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00047807', 'ean' => '3238990478074', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00047807.004', 'ean' => '3238990478074', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00047807.007', 'ean' => '3238990478074', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00047808', 'ean' => '3238990478081', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00047808.004', 'ean' => '3238990478081', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00047808.007', 'ean' => '3238990478081', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00047881', 'ean' => '3238990478814', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00047881.004', 'ean' => '3238990478814', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00048943', 'ean' => '3266980489434', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR-NL.png', - ), - - array ( + ], + [ 'item_code' => '00048943.006', 'ean' => '3266980489434', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR-NL.png', - ), - - array ( + ], + [ 'item_code' => '00048943.030', 'ean' => '3266980489434', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR-NL.png', - ), - - array ( + ], + [ 'item_code' => '00048944', 'ean' => '3266980489441', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR-NL.png', - ), - - array ( + ], + [ 'item_code' => '00048944.006', 'ean' => '3266980489441', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR-NL.png', - ), - - array ( + ], + [ 'item_code' => '00048944.012', 'ean' => '3266980489441', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR-NL.png', - ), - - array ( + ], + [ 'item_code' => '00050157', 'ean' => '3266980501570', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00050157.004', 'ean' => '3266980501570', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00050157.007', 'ean' => '3266980501570', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00063862', 'ean' => '3266980638627', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Pilons de poulet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00063862.004', 'ean' => '3266980638627', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Pilons de poulet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00063862.008', 'ean' => '3266980638627', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Pilons de poulet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00063862.012', 'ean' => '3266980638627', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Pilons de poulet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00063863', 'ean' => '3266980638634', 'packshot_name' => 'Packshot_Poulet_Jaune_Aiguillettes_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00063863.003', 'ean' => '3266980638634', 'packshot_name' => 'Packshot_Poulet_Jaune_Aiguillettes_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00063863.006', 'ean' => '3266980638634', 'packshot_name' => 'Packshot_Poulet_Jaune_Aiguillettes_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00063863.012', 'ean' => '3266980638634', 'packshot_name' => 'Packshot_Poulet_Jaune_Aiguillettes_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00063878', 'ean' => '3266980638788', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00063878.003', 'ean' => '3266980638788', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00063878.008', 'ean' => '3266980638788', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00063878.012', 'ean' => '3266980638788', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00063878.018', 'ean' => '3266980638788', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00063879', 'ean' => '3266980638795', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00063879.003', 'ean' => '3266980638795', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00063879.006', 'ean' => '3266980638795', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00063879.009', 'ean' => '3266980638795', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00063879.012', 'ean' => '3266980638795', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00063881', 'ean' => '3266980638818', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Filet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00063881.003', 'ean' => '3266980638818', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Filet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00063881.008', 'ean' => '3266980638818', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Filet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00063881.012', 'ean' => '3266980638818', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Filet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00063881.020', 'ean' => '3266980638818', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Filet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00063882', 'ean' => '3266980638825', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00063882.003', 'ean' => '3266980638825', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00063882.006', 'ean' => '3266980638825', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00063882.030', 'ean' => '3266980638825', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00067415', 'ean' => '3266980674151', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00067415.004', 'ean' => '3266980674151', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00067415.006', 'ean' => '3266980674151', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00067415.008', 'ean' => '3266980674151', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00067415.030', 'ean' => '3266980674151', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00067488', 'ean' => '3266980674885', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00067488.004', 'ean' => '3266980674885', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00067488.008', 'ean' => '3266980674885', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00067488.030', 'ean' => '3266980674885', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00067579', 'ean' => '3266980675790', 'packshot_name' => 'Packshot_Poulet_Jaune _Aiguillettes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00067579.004', 'ean' => '3266980675790', 'packshot_name' => 'Packshot_Poulet_Jaune _Aiguillettes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00067579.006', 'ean' => '3266980675790', 'packshot_name' => 'Packshot_Poulet_Jaune _Aiguillettes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00067579.012', 'ean' => '3266980675790', 'packshot_name' => 'Packshot_Poulet_Jaune _Aiguillettes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00067579.030', 'ean' => '3266980675790', 'packshot_name' => 'Packshot_Poulet_Jaune _Aiguillettes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00067580', 'ean' => '3266980675806', 'packshot_name' => 'Packshot_Poulet_Jaune _Aiguillettes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00067580.006', 'ean' => '3266980675806', 'packshot_name' => 'Packshot_Poulet_Jaune _Aiguillettes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00067580.012', 'ean' => '3266980675806', 'packshot_name' => 'Packshot_Poulet_Jaune _Aiguillettes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00067580.030', 'ean' => '3266980675806', 'packshot_name' => 'Packshot_Poulet_Jaune _Aiguillettes_LR.png', - ), - - array ( + ], + [ 'item_code' => '00077674', 'ean' => '3238990776743', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00077674.004', 'ean' => '3238990776743', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00077795', 'ean' => '3266980777951', 'packshot_name' => 'Packshot_Poulet_Ailes_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00077795.003', 'ean' => '3266980777951', 'packshot_name' => 'Packshot_Poulet_Ailes_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00077795.006', 'ean' => '3266980777951', 'packshot_name' => 'Packshot_Poulet_Ailes_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00077795.012', 'ean' => '3266980777951', 'packshot_name' => 'Packshot_Poulet_Ailes_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00078394', 'ean' => '3266980783945', 'packshot_name' => 'Packshot_Poulet_Blanc_x6_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00078394.004', 'ean' => '3266980783945', 'packshot_name' => 'Packshot_Poulet_Blanc_x6_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00078394.006', 'ean' => '3266980783945', 'packshot_name' => 'Packshot_Poulet_Blanc_x6_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00078395', 'ean' => '3266980783952', 'packshot_name' => 'Packshot_Poulet_Jaune_x6_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00078395.004', 'ean' => '3266980783952', 'packshot_name' => 'Packshot_Poulet_Jaune_x6_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00078395.006', 'ean' => '3266980783952', 'packshot_name' => 'Packshot_Poulet_Jaune_x6_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00078525', 'ean' => '3266980785253', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00078525.004', 'ean' => '3266980785253', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00078525.008', 'ean' => '3266980785253', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00078526', 'ean' => '3266980785260', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00078526.004', 'ean' => '3266980785260', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00080113', 'ean' => '3266980801137', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00080113.004', 'ean' => '3266980801137', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00080113.007', 'ean' => '3266980801137', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00080113.008', 'ean' => '3266980801137', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00083064', 'ean' => '3266980830649', 'packshot_name' => 'Packshot_Poulet_Blanc_x6_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00083064.004', 'ean' => '3266980830649', 'packshot_name' => 'Packshot_Poulet_Blanc_x6_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00083064.006', 'ean' => '3266980830649', 'packshot_name' => 'Packshot_Poulet_Blanc_x6_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00085473', 'ean' => '3266980854737', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR-ES.png', - ), - - array ( + ], + [ 'item_code' => '00085473.004', 'ean' => '3266980854737', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR-ES.png', - ), - - array ( + ], + [ 'item_code' => '00085473.007', 'ean' => '3266980854737', 'packshot_name' => 'Packshot_Poulet_Jaune_Entier_LR-ES.png', - ), - - array ( + ], + [ 'item_code' => '00087179', 'ean' => '3266980871796', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00087179.006', 'ean' => '3266980871796', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00087179.025', 'ean' => '3266980871796', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00087179.030', 'ean' => '3266980871796', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00087221', 'ean' => '3266980872212', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00087221.006', 'ean' => '3266980872212', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00087221.012', 'ean' => '3266980872212', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_LR.png', - ), - - array ( + ], + [ 'item_code' => '00087222', 'ean' => '3266980872229', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00087222.006', 'ean' => '3266980872229', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00087222.030', 'ean' => '3266980872229', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00087690', 'ean' => '3266980876906', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00087690.006', 'ean' => '3266980876906', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00087690.009', 'ean' => '3266980876906', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00087690.012', 'ean' => '3266980876906', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00087691.012', 'ean' => '3266980876913', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00087695.030', 'ean' => '3266980876951', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00088749.004', 'ean' => '3266980887490', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00089901', 'ean' => '3266980899011', 'packshot_name' => 'Packshot_Bq_2Cse_2Flt_Poulet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00089901.004', 'ean' => '3266980899011', 'packshot_name' => 'Packshot_Bq_2Cse_2Flt_Poulet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00089901.008', 'ean' => '3266980899011', 'packshot_name' => 'Packshot_Bq_2Cse_2Flt_Poulet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096782.006', 'ean' => '3266980004033', 'packshot_name' => 'Packshot_Poulet_Ailes_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096782.012', 'ean' => '3266980004033', 'packshot_name' => 'Packshot_Poulet_Ailes_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096791.004', 'ean' => '3266980004040', 'packshot_name' => 'Packshot_Poulet_Blanc_Jaune_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096791.008', 'ean' => '3266980004040', 'packshot_name' => 'Packshot_Poulet_Blanc_Jaune_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096792', 'ean' => '3266980004071', 'packshot_name' => 'Packshot_Poulet_Jaune_Aiguillettes_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096792.006', 'ean' => '3266980004071', 'packshot_name' => 'Packshot_Poulet_Jaune_Aiguillettes_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096793.006', 'ean' => '3266980004095', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096793.009', 'ean' => '3266980004095', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096794.006', 'ean' => '3266980004101', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Filet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00096795', 'ean' => '3266980004149', 'packshot_name' => 'Packshot_Poulet_Blanc_Jaune_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096795.004', 'ean' => '3266980004149', 'packshot_name' => 'Packshot_Poulet_Blanc_Jaune_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096795.007', 'ean' => '3266980004149', 'packshot_name' => 'Packshot_Poulet_Blanc_Jaune_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096795.008', 'ean' => '3266980004149', 'packshot_name' => 'Packshot_Poulet_Blanc_Jaune_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096796', 'ean' => '3266980004156', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096796.003', 'ean' => '3266980004156', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096796.006', 'ean' => '3266980004156', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096796.009', 'ean' => '3266980004156', 'packshot_name' => 'Packshot_Poulet_Jaune_x2_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096797', 'ean' => '3266980004170', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096797.003', 'ean' => '3266980004170', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096797.006', 'ean' => '3266980004170', 'packshot_name' => 'Packshot_Poulet_Blanc_x2_Filet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096798', 'ean' => '3266980004200', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096798.004', 'ean' => '3266980004200', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096798.007', 'ean' => '3266980004200', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00096798.008', 'ean' => '3266980004200', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00113588', 'ean' => '3266980025045', 'packshot_name' => 'Packshot_Poulet_Noir_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00113588.004', 'ean' => '3266980025045', 'packshot_name' => 'Packshot_Poulet_Noir_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00113588.008', 'ean' => '3266980025045', 'packshot_name' => 'Packshot_Poulet_Noir_Entier_LR.png', - ), - - array ( + ], + [ 'item_code' => '00120652', 'ean' => '3266980029043', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00120652.007', 'ean' => '3266980029043', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00120653', 'ean' => '3266980029104', 'packshot_name' => 'Packshot_Poulet_Blanc_Jaune_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00120653.007', 'ean' => '3266980029104', 'packshot_name' => 'Packshot_Poulet_Blanc_Jaune_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00125472', 'ean' => '3266980013295', 'packshot_name' => 'Packshot_Bq_2Cse_2Flt_Poulet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00125472.004', 'ean' => '3266980013295', 'packshot_name' => 'Packshot_Bq_2Cse_2Flt_Poulet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00125472.008', 'ean' => '3266980013295', 'packshot_name' => 'Packshot_Bq_2Cse_2Flt_Poulet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00125474', 'ean' => '3266980013325', 'packshot_name' => 'Packshot_Bq_2Cse_2Flt_Poulet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00125474.004', 'ean' => '3266980013325', 'packshot_name' => 'Packshot_Bq_2Cse_2Flt_Poulet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00125474.008', 'ean' => '3266980013325', 'packshot_name' => 'Packshot_Bq_2Cse_2Flt_Poulet_LR.png', - ), - - array ( + ], + [ 'item_code' => '00129878', 'ean' => '3266980016395', 'packshot_name' => 'Packshot_Bq_2Cse_2Flt_Poulet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00129878.004', 'ean' => '3266980016395', 'packshot_name' => 'Packshot_Bq_2Cse_2Flt_Poulet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00129878.008', 'ean' => '3266980016395', 'packshot_name' => 'Packshot_Bq_2Cse_2Flt_Poulet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00130530', 'ean' => '3266980016920', 'packshot_name' => 'Packshot_Bq_2Cse_2Flt_Poulet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00130530.004', 'ean' => '3266980016920', 'packshot_name' => 'Packshot_Bq_2Cse_2Flt_Poulet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00130530.008', 'ean' => '3266980016920', 'packshot_name' => 'Packshot_Bq_2Cse_2Flt_Poulet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00132670', 'ean' => '3266980019693', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00132670.004', 'ean' => '3266980019693', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00132670.006', 'ean' => '3266980019693', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00132670.008', 'ean' => '3266980019693', 'packshot_name' => 'Packshot_Poulet_Blanc_x4_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00133907', 'ean' => '3266980020378', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Filet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00133907.003', 'ean' => '3266980020378', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Filet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00133907.006', 'ean' => '3266980020378', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Filet_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00133909', 'ean' => '3266980020392', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00133909.003', 'ean' => '3266980020392', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00133909.006', 'ean' => '3266980020392', 'packshot_name' => 'Packshot_Poulet_Blanc_x1_Cuisses_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00133910', 'ean' => '3266980020408', 'packshot_name' => 'Packshot_Poulet_Jaune_x3_Haut de cuisse_LR.png', - ), - - array ( + ], + [ 'item_code' => '00133910.006', 'ean' => '3266980020408', 'packshot_name' => 'Packshot_Poulet_Jaune_x3_Haut de cuisse_LR.png', - ), - - array ( + ], + [ 'item_code' => '00135634', 'ean' => '3266980022259', 'packshot_name' => 'Packshot_Mrcx_Poulet_Bio_Blanc.png', - ), - - array ( + ], + [ 'item_code' => '00135634.004', 'ean' => '3266980022259', 'packshot_name' => 'Packshot_Mrcx_Poulet_Bio_Blanc.png', - ), - - array ( + ], + [ 'item_code' => '00135635', 'ean' => '3266980022297', 'packshot_name' => 'Packshot_Mrcx_Poulet_Bio_Blanc.png', - ), - - array ( + ], + [ 'item_code' => '00135635.004', 'ean' => '3266980022297', 'packshot_name' => 'Packshot_Mrcx_Poulet_Bio_Blanc.png', - ), - - array ( + ], + [ 'item_code' => '00141044', 'ean' => '3266980024499', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00141044.004', 'ean' => '3266980024499', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - - array ( + ], + [ 'item_code' => '00141044.007', 'ean' => '3266980024499', 'packshot_name' => 'Packshot_Poulet_Blanc_Entier_Bio.png', - ), - )); - - + ], + ]); } -} \ No newline at end of file +} diff --git a/resources/views/front/egg/index_id.blade.php b/resources/views/front/egg/index_id.blade.php index 73064fa..70b055f 100644 --- a/resources/views/front/egg/index_id.blade.php +++ b/resources/views/front/egg/index_id.blade.php @@ -10,10 +10,12 @@

Vous venez de scanner :

Œufs fermiers de Loué de
poules élevées en liberté

-

{{ $dataVisuel->libelle }}

+

{{ optional($dataVisuel)->libelle }}

+ @if($dataVisuel) œufs + @endif

Ces œufs ont été pondus le :

{{ Carbon\Carbon::parse($datePonte)->format('d/m/Y') }}

diff --git a/routes/web-fo.php b/routes/web-fo.php index 2f726a9..54fae43 100644 --- a/routes/web-fo.php +++ b/routes/web-fo.php @@ -104,4 +104,4 @@ Route::fallback(function () { if (request()->getHost() === config('app.egg_domain')) { return redirect(config('app.url')); } -}); \ No newline at end of file +});