1ScssPhp\ScssPhp\Exception\CompilerException {#8567
  #message: "Undefined mixin atelier-kicker: line: 193, column: 21"
  #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 13yield 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 54yield 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 """
.efebat-blog-detail { max-width: 100% !important; padding: 0 !important; }\n.article-layout { display: grid !important; grid-template-columns: 1fr 300px !important; gap: 60px !important; padding: 40px 0 80px !important; }\n.article-main { max-width: 800px !important; }\n.article-header { margin-bottom: 40px !important; }\n.article-category { @include atelier-kicker(var(--color3), false); margin-bottom: 20px !important; }\n.article-title { margin-bottom: 20px !important; @include atelier-section-title; font-size: clamp(38px, 5vw, 60px) !important; }\n.article-meta { display: flex !important; gap: 24px !important; color: var(--color2); font-size: 0.9rem !important; flex-wrap: wrap !important; margin-bottom: 0 !important; }\n.article-meta-item { display: inline-flex !important; align-items: center !important; gap: 8px !important; }\n.article-meta-item i { color: var(--color3) !important; }\n.article-featured-image { width: 100% !important; height: 420px !important; object-fit: cover !important; margin-bottom: 40px !important; box-shadow: var(--box-shadow) !important; }\n.article-content { line-height: 1.8 !important; font-size: 1.05rem !important; }\n.article-content h2 { margin: 44px 0 20px !important; @include atelier-section-title(2rem); }\n.article-content h3 { margin: 30px 0 15px !important; @include atelier-card-title(1.45rem); }\n.article-content p, .article-content li { color: var(--color2); }\n.article-content p { margin-bottom: 20px !important; }\n.article-content blockquote { border-left: 4px solid var(--color3) !important; padding: 20px 28px !important; background: var(--color4) !important; margin: 30px 0 !important; font-style: italic !important; color: var(--color2) !important; }\n.article-tags { display: flex !important; gap: 10px !important; flex-wrap: wrap !important; margin: 40px 0 !important; padding: 26px 0 !important; border-top: 1px solid var(--border-color) !important; border-bottom: 1px solid var(--border-color) !important; }\n\n.sidebar { min-width: 0 !important; }\n.recent-post { display: flex !important; gap: 14px !important; margin-bottom: 18px !important; padding-bottom: 18px !important; border-bottom: 1px solid var(--border-color) !important; min-width: 0 !important; }\n.recent-post:last-child { margin-bottom: 0 !important; padding-bottom: 0 !important; border-bottom: none !important; }\n.recent-post-image { width: 76px !important; height: 76px !important; max-width: 76px !important; flex: 0 0 76px !important; object-fit: cover !important; }\n.recent-post-content { min-width: 0 !important; flex: 1 1 auto !important; }\n.recent-post-content h4 { margin-bottom: 6px !important; @include atelier-card-title(0.95rem); line-height: 1.35 !important; }\n.recent-post-date { color: var(--color2); font-size: 0.84rem !important; }\n\n\n.article-content a,\n.recent-post-content a,\n.article-tags .tag {\n  color: var(--color3) !important;\n  text-decoration: none !important;\n  border-bottom: 1px solid currentColor !important;\n  transition: var(--transition) !important;\n}\n\n.article-content a:hover,\n.recent-post-content a:hover,\n.article-tags .tag:hover {\n  color: var(--color1) !important;\n}\n\n.share-section {\n  margin-top: 36px !important;\n  padding-top: 28px !important;\n  border-top: 1px solid var(--border-color) !important;\n}\n\n.share-title {\n  margin-bottom: 16px !important;\n  @include atelier-card-title(1.35rem);\n}\n\n.share-buttons {\n  display: flex !important;\n  align-items: center !important;\n  gap: 10px !important;\n  flex-wrap: wrap !important;\n}\n\n.share-btn {\n  width: 42px !important;\n  height: 42px !important;\n  display: inline-flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n  background: var(--surface-color) !important;\n  border: 1px solid var(--border-color) !important;\n  color: var(--color1) !important;\n  text-decoration: none !important;\n  box-shadow: none !important;\n  transition: var(--transition) !important;\n}\n\n.share-btn i {\n  color: inherit !important;\n  font-size: 0.95rem !important;\n}\n\n.share-btn:hover {\n  background: var(--color1) !important;\n  border-color: var(--color1) !important;\n  color: var(--color4) !important;\n}\n
"""
bloc_32c9d4b7-b263-4374-9b5f-49abfcfc3f7a *{color: red !important} #bloc_32c9d4b7-b263-4374-9b5f-49abfcfc3f7a .shape-divider-top path { fill: #6174d1 !important; } #bloc_32c9d4b7-b263-4374-9b5f-49abfcfc3f7a .shape-divider-bottom path { fill: #6174d1 !important; }

Permis de construire : pièces à anticiper

Permis de construire : pièces à anticiper

Le permis repose sur une cohérence entre plans, façades, insertion, notice et documents graphiques.

Anticiper ces pièces permet d'éviter des reprises tardives et de clarifier la lecture du projet par l'administration.