1ScssPhp\ScssPhp\Exception\CompilerException {#9128
#message: "Undefined mixin atelier-page-hero-root: line: 189, column: 60"
#code: 0
#file: "/app/vendor/scssphp/scssphp/src/Compiler.php"
#line: 6179trace: {/app/vendor/scssphp/scssphp/src/Compiler.php:6179 {ScssPhp\ScssPhp\Compiler->error($msg, ...$args) …
›
› return new CompilerException($msg);
› }}
/app/vendor/scssphp/scssphp/src/Compiler.php:3323 {ScssPhp\ScssPhp\Compiler->compileChild($child, OutputBlock $out) …
› if (! $mixin) {
› throw $this->error("Undefined mixin $name");
› }}
/app/vendor/scssphp/scssphp/src/Compiler.php:2427 {ScssPhp\ScssPhp\Compiler->compileChildrenNoReturn($stms, OutputBlock $out, $selfParent = null, $traceName = '') …
› } else {
› $ret = $this->compileChild($stm, $out);
› }}
/app/vendor/scssphp/scssphp/src/Compiler.php:1970 {ScssPhp\ScssPhp\Compiler->compileBlock(Block $block) …
›
› $this->compileChildrenNoReturn($block->children, $out, $block->selfParent);
›
}
/app/vendor/scssphp/scssphp/src/Compiler.php:2980 {ScssPhp\ScssPhp\Compiler->compileChild($child, OutputBlock $out) …
› case Type::T_BLOCK:
› $this->compileBlock($child[1]);
› break;}
/app/vendor/scssphp/scssphp/src/Compiler.php:2427 {ScssPhp\ScssPhp\Compiler->compileChildrenNoReturn($stms, OutputBlock $out, $selfParent = null, $traceName = '') …
› } else {
› $ret = $this->compileChild($stm, $out);
› }}
/app/vendor/scssphp/scssphp/src/Compiler.php:1970 {ScssPhp\ScssPhp\Compiler->compileBlock(Block $block) …
›
› $this->compileChildrenNoReturn($block->children, $out, $block->selfParent);
›
}
/app/vendor/scssphp/scssphp/src/Compiler.php:2980 {ScssPhp\ScssPhp\Compiler->compileChild($child, OutputBlock $out) …
› case Type::T_BLOCK:
› $this->compileBlock($child[1]);
› break;}
/app/vendor/scssphp/scssphp/src/Compiler.php:2427 {ScssPhp\ScssPhp\Compiler->compileChildrenNoReturn($stms, OutputBlock $out, $selfParent = null, $traceName = '') …
› } else {
› $ret = $this->compileChild($stm, $out);
› }}
/app/vendor/scssphp/scssphp/src/Compiler.php:782 {ScssPhp\ScssPhp\Compiler->compileRoot(Block $rootBlock) …
›
› $this->compileChildrenNoReturn($rootBlock->children, $this->scope);
› assert($this->scope !== null);}
/app/vendor/scssphp/scssphp/src/Compiler.php:560 {ScssPhp\ScssPhp\Compiler->compileString($source, $path = null) …
› $this->injectVariables($this->registeredVars);
› $this->compileRoot($tree);
› $this->popEnv();}
/app/src/Twig/Traits/ScssExtensionTrait.php:190 {App\Twig\TwigExtension->App\Twig\Traits\{closure} …
›
› $css = $compiler->compileString($scss)->getCss();
› $entityName = $entity?->__toString();}
/app/src/Service/Cache/MemoryCacheService.php:31 {App\Service\Cache\MemoryCacheService::App\Service\Cache\{closure} …
› $item->tag($tags);
› return $function($item);
› });}
/app/vendor/symfony/cache/LockRegistry.php:111 {Symfony\Component\Cache\LockRegistry::compute(callable $callback, ItemInterface $item, bool &$save, CacheInterface $pool, ?Closure $setMetadata = null, ?LoggerInterface $logger = null): mixed …
›
› $value = $callback($item, $save);
›
}
/app/vendor/symfony/cache/Traits/ContractsTrait.php:102 {Symfony\Component\Cache\Adapter\TagAwareAdapter->Symfony\Component\Cache\Traits\{closure} …
› try {
› $value = ($this->callbackWrapper)($callback, $item, $save, $pool, function (CacheItem $item) use ($setMetadata, $startTime, &$metadata) {
› $setMetadata($item, $startTime, $metadata);}
/app/vendor/symfony/cache-contracts/CacheTrait.php:64 {Symfony\Component\Cache\Adapter\TagAwareAdapter->contractsGet(CacheItemPoolInterface $pool, string $key, callable $callback, ?float $beta, ?array &$metadata = null, ?LoggerInterface $logger = null): mixed …
› $save = true;
› $item->set($callback($item, $save));
› if ($save) {}
/app/vendor/symfony/cache/Traits/ContractsTrait.php:85 {Symfony\Component\Cache\Adapter\TagAwareAdapter->doGet(AdapterInterface $pool, string $key, callable $callback, ?float $beta, ?array &$metadata = null): mixed …
›
› return $this->contractsGet($pool, $key, function (CacheItem $item, bool &$save) use ($pool, $callback, $setMetadata, &$metadata, $key) {
› // don't wrap nor save recursive calls}
/app/vendor/symfony/cache-contracts/CacheTrait.php:30 {Symfony\Component\Cache\Adapter\TagAwareAdapter->get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null): mixed …
› {
› return $this->doGet($this, $key, $callback, $beta, $metadata);
› }}
/app/src/Service/Cache/MemoryCacheService.php:29 {App\Service\Cache\MemoryCacheService::getValue(App\Service\Cache\CacheTagsEnum|string $name, callable $function, array $tags = [], bool $ignoreLanguage = false, bool $ignoreMediaType = false, bool $ignoreRole = false, array $suffixes = []): mixed …
›
› return $cache->get($name, function (CacheItem $item) use ($function, $tags) {
› $item->tag($tags);}
/app/src/Service/Cache/Strategy/MemoryAndHttpCacheStrategy.php:14 {App\Service\Cache\Strategy\MemoryAndHttpCacheStrategy::getValue(App\Service\Cache\CacheTagsEnum|string $name, callable $function, array $tags = [], bool $ignoreLanguage = false, bool $ignoreMediaType = false, bool $ignoreRole = false, array $suffixes = []): mixed …
› {
› return MemoryCacheService::getValue($name, $function, $tags, $ignoreLanguage, $ignoreMediaType, $ignoreRole, $suffixes);
› }}
/app/src/Service/Cache/CacheManager.php:16 {App\Service\Cache\CacheManager::getValue(App\Service\Cache\CacheTagsEnum|string $name, callable $function, array $tags = [], bool $ignoreLanguage = false, bool $ignoreMediaType = false, bool $ignoreRole = false, array $suffixes = []): mixed …
› {
› return (self::getCacheStrategyClass())::getValue($name, $function, $tags, $ignoreLanguage, $ignoreMediaType, $ignoreRole, $suffixes);
› }}
/app/src/Twig/Traits/ScssExtensionTrait.php:74 {App\Twig\TwigExtension->filter_scss(?string $scss, ?string $randomBlockId = null, ?AbstractEvolutEntity $entity = null): ?string …
› $mediaType = SessionContextService::getContext(SessionContextEnum::MANUAL_MEDIA_TYPE) ?? SessionContextService::getContext(SessionContextEnum::ACTUAL_MEDIA_TYPE);
› return CacheManager::getValue(sprintf('scss_rendering_for_%s_%s_%s_%s', $randomBlockId, md5($scss), $language, $mediaType),
› function () use ($scss, $randomBlockId, $entity) {}
/app/var/cache/prod/twig/40/40d274654847ebb44e105d8301adbd44.php:118 {__TwigTemplate_de3f5a5383dba55f0089769a14095e32->block_bloc_styles(array $context, array $blocks = []): iterable …
› yield " ";
› yield $this->extensions['App\Twig\TwigExtension']->filter_decode_html($this->extensions['App\Twig\TwigExtension']->filter_scss(CoreExtension::getAttribute($this->env, $this->source, ($context["bloc"] ?? null), "scss", [], "any", false, false, false, 17), CoreExtension::getAttribute($this->env, $this->source, ($context["bloc"] ?? null), "blocId", [], "any", false, false, false, 17), ($context["bloc"] ?? null)));
› yield "}
/app/vendor/twig/twig/src/Template.php:437 {Twig\Template->yieldBlock($name, array $context, array $blocks = [], $useBlocks = true, ?self $templateContext = null): iterable …
› try {
› yield from $template->$block($context, $blocks);
› } catch (Error $e) {}
/app/var/cache/prod/twig/40/40d274654847ebb44e105d8301adbd44.php:75 {__TwigTemplate_de3f5a5383dba55f0089769a14095e32->doDisplay(array $context, array $blocks = []): iterable …
› // line 13
› yield from $this->unwrap()->yieldBlock('bloc_styles', $context, $blocks);
› // line 44}
/app/vendor/twig/twig/src/Template.php:393 {Twig\Template->yield(array $context, array $blocks = []): iterable …
› try {
› yield from $this->doDisplay($context, $blocks);
› } catch (Error $e) {}
/app/var/cache/prod/twig/cc/cc7aa6d18d1c40bd6452c433b77a82c0.php:53 {__TwigTemplate_3dac8488c739450518b10b9760b9254b->doDisplay(array $context, array $blocks = []): iterable …
› $this->parent = $this->loadTemplate("blocs/Bloc.html.twig", "blocs/global/bloc_with_header.html.twig", 3);
› yield from $this->parent->unwrap()->yield($context, array_merge($this->blocks, $blocks));
› }}
/app/vendor/twig/twig/src/Template.php:393 {Twig\Template->yield(array $context, array $blocks = []): iterable …
› try {
› yield from $this->doDisplay($context, $blocks);
› } catch (Error $e) {}
/app/var/cache/prod/twig/8e/8ed5391774d269ffe313b0559cfd8382.php:47 {__TwigTemplate_6b57b105b45e51a70cfc162472edc3fd->doDisplay(array $context, array $blocks = []): iterable …
› $this->parent = $this->loadTemplate("blocs/global/bloc_with_header.html.twig", "blocs/ContentBloc.html.twig", 2);
› yield from $this->parent->unwrap()->yield($context, array_merge($this->blocks, $blocks));
› }}
/app/vendor/twig/twig/src/Template.php:393 {Twig\Template->yield(array $context, array $blocks = []): iterable …
› try {
› yield from $this->doDisplay($context, $blocks);
› } catch (Error $e) {}
/app/var/cache/prod/twig/e4/e442822ed0d4f08edcff2f3e037ba064.php:105 {__TwigTemplate_423c0fd090ec7fbc4f373b8126c9baeb->block_include_bloc(array $context, array $blocks = []): iterable …
› yield " ";
› yield from $this->loadTemplate((("blocs/" . $this->extensions['App\Twig\TwigExtension']->filter_class(CoreExtension::getAttribute($this->env, $this->source, ($context["blocPage"] ?? null), "bloc", [], "any", false, false, false, 6))) . ".html.twig"), "blocs/CustomPage.html.twig", 6)->unwrap()->yield(CoreExtension::merge($context, ["bloc" => CoreExtension::getAttribute($this->env, $this->source, ($context["blocPage"] ?? null), "bloc", [], "any", false, false, false, 6), "nodump" => true, "form" => ($context["form"] ?? null)]));
› // line 7}
/app/vendor/twig/twig/src/Template.php:437 {Twig\Template->yieldBlock($name, array $context, array $blocks = [], $useBlocks = true, ?self $templateContext = null): iterable …
› try {
› yield from $template->$block($context, $blocks);
› } catch (Error $e) {}
/app/var/cache/prod/twig/e4/e442822ed0d4f08edcff2f3e037ba064.php:78 {__TwigTemplate_423c0fd090ec7fbc4f373b8126c9baeb->block_blocPages(array $context, array $blocks = []): iterable …
› yield " ";
› yield from $this->unwrap()->yieldBlock('include_bloc', $context, $blocks);
› // line 8}
/app/vendor/twig/twig/src/Template.php:437 {Twig\Template->yieldBlock($name, array $context, array $blocks = [], $useBlocks = true, ?self $templateContext = null): iterable …
› try {
› yield from $template->$block($context, $blocks);
› } catch (Error $e) {}
/app/var/cache/prod/twig/16/1645acb24792cee10894bf491402cd5b.php:227 {__TwigTemplate_8e47dc406ec905e42279cfc058629785->block_body(array $context, array $blocks = []): iterable …
› // line 54
› yield from $this->unwrap()->yieldBlock('blocPages', $context, $blocks);
› // line 61}
/app/vendor/twig/twig/src/Template.php:437 {Twig\Template->yieldBlock($name, array $context, array $blocks = [], $useBlocks = true, ?self $templateContext = null): iterable …
› try {
› yield from $template->$block($context, $blocks);
› } catch (Error $e) {}
/app/var/cache/prod/twig/f3/f3ea7129739c5ba87d4de6e044961f47.php:304 {__TwigTemplate_f7de9678832f434a6f354facfb4e9091->{closure} …
› yield " ";
› yield from $this->unwrap()->yieldBlock('body', $context, $blocks);
› // line 131}
/app/vendor/twig/twig/src/Extension/CoreExtension.php:1919 {Twig\Extension\CoreExtension::captureOutput(iterable $body): string …
› try {
› foreach ($body as $data) {
› echo $data;}
/app/var/cache/prod/twig/f3/f3ea7129739c5ba87d4de6e044961f47.php:301 {__TwigTemplate_f7de9678832f434a6f354facfb4e9091->doDisplay(array $context, array $blocks = []): iterable …
› // line 123
› $___internal_parse_0_ = ('' === $tmp = \Twig\Extension\CoreExtension::captureOutput((function () use (&$context, $macros, $blocks) {
› // line 124}
/app/vendor/twig/twig/src/Template.php:393 {Twig\Template->yield(array $context, array $blocks = []): iterable …
› try {
› yield from $this->doDisplay($context, $blocks);
› } catch (Error $e) {}
/app/var/cache/prod/twig/16/1645acb24792cee10894bf491402cd5b.php:70 {__TwigTemplate_8e47dc406ec905e42279cfc058629785->doDisplay(array $context, array $blocks = []): iterable …
› $this->parent = $this->loadTemplate("base.html.twig", "blocs/Page.html.twig", 2);
› yield from $this->parent->unwrap()->yield($context, array_merge($this->blocks, $blocks));
› }}
/app/vendor/twig/twig/src/Template.php:393 {Twig\Template->yield(array $context, array $blocks = []): iterable …
› try {
› yield from $this->doDisplay($context, $blocks);
› } catch (Error $e) {}
/app/var/cache/prod/twig/e4/e442822ed0d4f08edcff2f3e037ba064.php:48 {__TwigTemplate_423c0fd090ec7fbc4f373b8126c9baeb->doDisplay(array $context, array $blocks = []): iterable …
› $this->parent = $this->loadTemplate("blocs/Page.html.twig", "blocs/CustomPage.html.twig", 1);
› yield from $this->parent->unwrap()->yield($context, array_merge($this->blocks, $blocks));
› }}
/app/vendor/twig/twig/src/Template.php:393 {Twig\Template->yield(array $context, array $blocks = []): iterable …
› try {
› yield from $this->doDisplay($context, $blocks);
› } catch (Error $e) {}
/app/vendor/twig/twig/src/Template.php:349 {Twig\Template->display(array $context, array $blocks = []): void …
› {
› foreach ($this->yield($context, $blocks) as $data) {
› echo $data;}
/app/vendor/twig/twig/src/Template.php:364 {Twig\Template->render(array $context): string …
› try {
› $this->display($context);
› } catch (\Throwable $e) {}
/app/vendor/twig/twig/src/TemplateWrapper.php:35 {Twig\TemplateWrapper->render(array $context = []): string …
› {
› return $this->template->render($context);
› }}
/app/vendor/twig/twig/src/Environment.php:306 {Twig\Environment->render($name, array $context = []): string …
› {
› return $this->load($name)->render($context);
› }}
/app/vendor/symfony/framework-bundle/Controller/AbstractController.php:448 {Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRenderView(string $view, ?string $block, array $parameters, string $method): string …
›
› return $this->container->get('twig')->render($view, $parameters);
› }}
/app/vendor/symfony/framework-bundle/Controller/AbstractController.php:453 {Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRender(string $view, ?string $block, array $parameters, ?Response $response, string $method): Response …
› {
› $content = $this->doRenderView($view, $block, $parameters, $method);
› $response ??= new Response();}
/app/vendor/symfony/framework-bundle/Controller/AbstractController.php:253 {Symfony\Bundle\FrameworkBundle\Controller\AbstractController->render(string $view, array $parameters = [], ?Response $response = null): Response …
› {
› return $this->doRender($view, null, $parameters, $response, __FUNCTION__);
› }}
/app/src/Controller/Base/WebsiteController.php:164 {App\Controller\Base\WebsiteController->renderPage(?string $slug = null): Response …
›
› return $this->render('blocs/' . TwigExtension::filter_class($page) . '.html.twig', [
› 'bloc' => $page,}
/app/vendor/symfony/http-kernel/HttpKernel.php:181 {Symfony\Component\HttpKernel\HttpKernel->handleRaw(Request $request, int $type = self::MAIN_REQUEST): Response …
› // call controller
› $response = $controller(...$arguments);
›
}
/app/vendor/symfony/http-kernel/HttpKernel.php:76 {Symfony\Component\HttpKernel\HttpKernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response …
› try {
› return $response = $this->handleRaw($request, $type);
› } catch (\Throwable $e) {}
/app/vendor/symfony/http-kernel/Kernel.php:197 {Symfony\Component\HttpKernel\Kernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response …
› try {
› return $this->getHttpKernel()->handle($request, $type, $catch);
› } finally {}
/app/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35 {Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run(): int …
› {
› $response = $this->kernel->handle($this->request);
›
}
/app/vendor/autoload_runtime.php:29 {require_once …
› ->getRunner($app)
› ->run()
› );}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
2 """
.service-hero { @include atelier-page-hero-root; padding: 142px 0 96px !important; min-height: 640px !important; display: flex !important; align-items: flex-end !important; }\n.service-hero__media { position: absolute !important; inset: 0 !important; }\n.service-hero__img { width: 100% !important; height: 100% !important; object-fit: cover !important; }\n.service-hero__overlay { position: absolute !important; inset: 0 !important; background: linear-gradient(115deg, rgba(34, 36, 38, 0.92) 0%, rgba(34, 36, 38, 0.76) 48%, rgba(34, 36, 38, 0.32) 100%) !important; }\n.service-hero__inner { position: relative !important; z-index: 2 !important; max-width: 1180px !important; text-align: left !important; }\n.service-hero__eyebrow { @include atelier-kicker; color: rgba(244, 241, 234, 0.86) !important; border-left-color: var(--color4) !important; margin-bottom: 22px !important; }\n.service-hero__icon { display: inline-flex !important; align-items: center !important; justify-content: center !important; width: 64px !important; height: 64px !important; margin-bottom: 24px !important; border: 1px solid rgba(244, 241, 234, 0.38) !important; background: rgba(244, 241, 234, 0.1) !important; color: var(--color4) !important; font-size: 27px !important; }\n.service-hero__title { @include atelier-page-hero-title; max-width: 880px !important; margin-bottom: 22px !important; font-size: clamp(42px, 5vw, 72px) !important; }\n.service-hero__lead { max-width: 760px !important; @include atelier-section-description(rgba(244, 241, 234, 0.86)); font-size: 1.08rem !important; line-height: 1.78 !important; }\n.service-hero__actions { margin-top: 30px !important; }\n.service-hero__actions .buttons, .service-hero__actions .bloc-buttons { display: flex !important; flex-wrap: wrap !important; gap: 14px !important; }\n.service-hero__actions .btn { border: 1px solid rgba(244, 241, 234, 0.74) !important; box-shadow: none !important; }\n.service-hero__actions .btn:hover { background: var(--color3) !important; border-color: var(--color3) !important; color: var(--color4) !important; }\n.service-hero__signals { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; max-width: 920px !important; gap: 0 !important; margin-top: 46px !important; border-top: 1px solid rgba(244, 241, 234, 0.24) !important; border-bottom: 1px solid rgba(244, 241, 234, 0.24) !important; }\n.service-hero__signals span { padding: 18px 20px !important; color: rgba(244, 241, 234, 0.84) !important; font-size: 0.9rem !important; border-right: 1px solid rgba(244, 241, 234, 0.18) !important; }\n.service-hero__signals span:last-child { border-right: 0 !important; }\n@media all and (max-width: 900px) {\n .service-hero { min-height: 560px !important; padding: 112px 0 72px !important; }\n .service-hero__signals { grid-template-columns: 1fr !important; }\n .service-hero__signals span { border-right: 0 !important; border-bottom: 1px solid rgba(244, 241, 234, 0.18) !important; }\n .service-hero__signals span:last-child { border-bottom: 0 !important; }\n}
"""
bloc_3de7dda1-299d-4a17-bc87-cbc22330c759 *{color: red !important}
#bloc_3de7dda1-299d-4a17-bc87-cbc22330c759 .shape-divider-top path {
fill: #6174d1 !important;
}
#bloc_3de7dda1-299d-4a17-bc87-cbc22330c759
.shape-divider-bottom path {
fill: #6174d1 !important;
}
Mission d’architecture
Maîtrise d'oeuvre et suivi de chantier
Coordination des entreprises, suivi des décisions et comptes rendus réguliers pour garder le chantier lisible.
Cadrage des usagesArbitrages réglementairesDécisions traçables
Maîtrise d'oeuvre et suivi de chantier
La phase chantier demande une coordination constante entre plans, entreprises, délais et décisions de terrain.
L’agence suit les points clés, documente les arbitrages et garde une trace claire des validations jusqu’à la réception.
- Organisation des échanges avec les entreprises et intervenants.
- Suivi des décisions, comptes rendus et points de vigilance.
- Contrôle de la cohérence entre intentions architecturales et exécution.
Valider la bonne trajectoire pour votre projet
Un premier échange permet de qualifier le besoin, les contraintes et les prochaines décisions à prendre.