Deprecated: Return type of Illuminate\View\ComponentAttributeBag::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/ComponentAttributeBag.php on line 236
Call Stack:
0.0003 412936 1. {main}() /Users/pretzelhands/Projects/pretzelhands.com/vendor/bin/jigsaw:0
0.0004 416176 2. include('/Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/jigsaw') /Users/pretzelhands/Projects/pretzelhands.com/vendor/bin/jigsaw:107
0.0620 2823128 3. Symfony\Component\Console\Application->run($input = ???, $output = ???) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/jigsaw:16
0.0751 2918440 4. Symfony\Component\Console\Application->doRun($input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'build', 'env' => 'production']; protected $interactive = TRUE; private $tokens = [0 => 'build', 1 => 'production']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(113) of type (stream) }; private $consoleSectionOutputs = [] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/symfony/console/Application.php:167
0.0755 2938088 5. Symfony\Component\Console\Application->doRunCommand($command = class TightenCo\Jigsaw\Console\BuildCommand { private ${Symfony\Component\Console\Command\Command}application = class Symfony\Component\Console\Application { private $commands = [...]; private $wantHelps = FALSE; private $runningCommand = ...; private $name = 'Jigsaw'; private $version = '1.3.38'; private $commandLoader = NULL; private $catchExceptions = TRUE; private $autoExit = TRUE; private $definition = class Symfony\Component\Console\Input\InputDefinition { ... }; private $helperSet = class Symfony\Component\Console\Helper\HelperSet { ... }; private $dispatcher = NULL; private $terminal = class Symfony\Component\Console\Terminal { ... }; private $defaultCommand = 'list'; private $singleCommand = FALSE; private $initialized = TRUE; private $signalRegistry = class Symfony\Component\Console\SignalRegistry\SignalRegistry { ... }; private $signalsToDispatchEvent = [...] }; private ${Symfony\Component\Console\Command\Command}name = 'build'; private ${Symfony\Component\Console\Command\Command}processTitle = NULL; private ${Symfony\Component\Console\Command\Command}aliases = []; private ${Symfony\Component\Console\Command\Command}definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 0; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; private ${Symfony\Component\Console\Command\Command}hidden = FALSE; private ${Symfony\Component\Console\Command\Command}help = ''; private ${Symfony\Component\Console\Command\Command}description = 'Build your site.'; private ${Symfony\Component\Console\Command\Command}fullDefinition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; private ${Symfony\Component\Console\Command\Command}ignoreValidationErrors = FALSE; private ${Symfony\Component\Console\Command\Command}code = NULL; private ${Symfony\Component\Console\Command\Command}synopsis = []; private ${Symfony\Component\Console\Command\Command}usages = []; private ${Symfony\Component\Console\Command\Command}helperSet = class Symfony\Component\Console\Helper\HelperSet { private $helpers = [...]; private $command = NULL }; private $app = class Illuminate\Container\Container { protected $resolved = [...]; protected $bindings = [...]; protected $methodBindings = [...]; protected $instances = [...]; protected $aliases = [...]; protected $abstractAliases = [...]; protected $extenders = [...]; protected $tags = [...]; protected $buildStack = [...]; protected $with = [...]; public $contextual = [...]; protected $reboundCallbacks = [...]; protected $globalResolvingCallbacks = [...]; protected $globalAfterResolvingCallbacks = [...]; protected $resolvingCallbacks = [...]; protected $afterResolvingCallbacks = [...] }; private $consoleOutput = class TightenCo\Jigsaw\Console\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(94) of type (stream); private ${Symfony\Component\Console\Output\ConsoleOutput}stderr = class Symfony\Component\Console\Output\StreamOutput { ... }; private ${Symfony\Component\Console\Output\ConsoleOutput}consoleSectionOutputs = [...]; protected $progressBars = [...]; protected $sections = class Illuminate\Support\Collection { ... } }; public $input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { ... }; protected $stream = NULL; protected $options = [...]; protected $arguments = [...]; protected $interactive = TRUE; private $tokens = [...]; private $parsed = [...] }; public $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { ... }; private $consoleSectionOutputs = [...] }; public $console = class TightenCo\Jigsaw\Console\ConsoleSession { protected $input = class Symfony\Component\Console\Input\ArgvInput { ... }; protected $output = class Symfony\Component\Console\Output\ConsoleOutput { ... }; protected $question = class Symfony\Component\Console\Helper\QuestionHelper { ... } } }, $input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'build', 'env' => 'production']; protected $interactive = TRUE; private $tokens = [0 => 'build', 1 => 'production']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(113) of type (stream) }; private $consoleSectionOutputs = [] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/symfony/console/Application.php:295
0.0755 2938088 6. Symfony\Component\Console\Command\Command->run($input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'build', 'env' => 'production']; protected $interactive = TRUE; private $tokens = [0 => 'build', 1 => 'production']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(113) of type (stream) }; private $consoleSectionOutputs = [] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/symfony/console/Application.php:978
0.0756 2939848 7. TightenCo\Jigsaw\Console\Command->execute($input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'build', 'env' => 'production']; protected $interactive = TRUE; private $tokens = [0 => 'build', 1 => 'production']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(113) of type (stream) }; private $consoleSectionOutputs = [] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/symfony/console/Command/Command.php:299
0.1866 2954728 8. TightenCo\Jigsaw\Console\BuildCommand->fire() /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Console/Command.php:21
2.4188 5072192 9. TightenCo\Jigsaw\Jigsaw->build($env = 'production', $useCache = FALSE) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Console/BuildCommand.php:60
4.8672 5792944 10. TightenCo\Jigsaw\Jigsaw->buildSite($useCache = FALSE) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Jigsaw.php:46
4.8673 5792944 11. TightenCo\Jigsaw\SiteBuilder->build($source = '/Users/pretzelhands/Projects/pretzelhands.com/source', $destination = '/Users/pretzelhands/Projects/pretzelhands.com/build_production', $siteData = class TightenCo\Jigsaw\SiteData { protected $items = ['page' => class TightenCo\Jigsaw\IterableObject { ... }, 'posts' => class TightenCo\Jigsaw\PageVariable { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Jigsaw.php:76
4.8674 5792784 12. TightenCo\Jigsaw\SiteBuilder->generateFiles($source = '/Users/pretzelhands/Projects/pretzelhands.com/source', $siteData = class TightenCo\Jigsaw\SiteData { protected $items = ['page' => class TightenCo\Jigsaw\IterableObject { ... }, 'posts' => class TightenCo\Jigsaw\PageVariable { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:43
4.8702 5908840 13. Illuminate\Support\Collection->flatMap($callback = class Closure { public $static = ['siteData' => class TightenCo\Jigsaw\SiteData { ... }]; public $this = class TightenCo\Jigsaw\SiteBuilder { private $cachePath = '/Users/pretzelhands/Projects/pretzelhands.com/cache'; private $files = class TightenCo\Jigsaw\File\Filesystem { ... }; private $handlers = [...]; private $outputPathResolver = class TightenCo\Jigsaw\PathResolvers\PrettyOutputPathResolver { ... }; private $consoleOutput = class TightenCo\Jigsaw\Console\ConsoleOutput { ... }; private $useCache = FALSE }; public $parameter = ['$file' => ''] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:88
4.8702 5908840 14. Illuminate\Support\Collection->map($callback = class Closure { public $static = ['siteData' => class TightenCo\Jigsaw\SiteData { ... }]; public $this = class TightenCo\Jigsaw\SiteBuilder { private $cachePath = '/Users/pretzelhands/Projects/pretzelhands.com/cache'; private $files = class TightenCo\Jigsaw\File\Filesystem { ... }; private $handlers = [...]; private $outputPathResolver = class TightenCo\Jigsaw\PathResolvers\PrettyOutputPathResolver { ... }; private $consoleOutput = class TightenCo\Jigsaw\Console\ConsoleOutput { ... }; private $useCache = FALSE }; public $parameter = ['$file' => ''] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Traits/EnumeratesValues.php:311
4.8702 5911456 15. array_map($callback = class Closure { public $static = ['siteData' => class TightenCo\Jigsaw\SiteData { ... }]; public $this = class TightenCo\Jigsaw\SiteBuilder { private $cachePath = '/Users/pretzelhands/Projects/pretzelhands.com/cache'; private $files = class TightenCo\Jigsaw\File\Filesystem { ... }; private $handlers = [...]; private $outputPathResolver = class TightenCo\Jigsaw\PathResolvers\PrettyOutputPathResolver { ... }; private $consoleOutput = class TightenCo\Jigsaw\Console\ConsoleOutput { ... }; private $useCache = FALSE }; public $parameter = ['$file' => ''] }, $array = [0 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = class TightenCo\Jigsaw\PageVariable { ... } }, 1 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 2 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 3 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 4 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 5 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 6 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 7 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 8 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 9 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 10 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 11 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 12 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 13 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 14 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 15 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 16 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 17 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 18 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 19 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 20 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 21 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 22 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 23 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 24 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 25 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 26 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 27 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 28 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 29 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 30 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 31 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 32 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 33 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 34 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 35 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 36 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 37 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 38 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 39 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 40 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 41 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 42 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 43 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 44 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 45 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 46 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 47 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 48 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 49 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 50 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 51 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 52 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 53 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 54 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 55 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 56 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 57 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 58 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 59 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 60 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 61 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 62 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 63 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 64 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 65 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }], $arrays = [0 => 0, 1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10, 11 => 11, 12 => 12, 13 => 13, 14 => 14, 15 => 15, 16 => 16, 17 => 17, 18 => 18, 19 => 19, 20 => 20, 21 => 21, 22 => 22, 23 => 23, 24 => 24, 25 => 25, 26 => 26, 27 => 27, 28 => 28, 29 => 29, 30 => 30, 31 => 31, 32 => 32, 33 => 33, 34 => 34, 35 => 35, 36 => 36, 37 => 37, 38 => 38, 39 => 39, 40 => 40, 41 => 41, 42 => 42, 43 => 43, 44 => 44, 45 => 45, 46 => 46, 47 => 47, 48 => 48, 49 => 49, 50 => 50, 51 => 51, 52 => 52, 53 => 53, 54 => 54, 55 => 55, 56 => 56, 57 => 57, 58 => 58, 59 => 59, 60 => 60, 61 => 61, 62 => 62, 63 => 63, 64 => 64, 65 => 65]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Collection.php:638
5.5483 6205968 16. TightenCo\Jigsaw\SiteBuilder->TightenCo\Jigsaw{closure:/Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:88-92}($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, 3) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Collection.php:638
5.5483 6205968 17. TightenCo\Jigsaw\SiteBuilder->handle($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $siteData = class TightenCo\Jigsaw\SiteData { protected $items = ['page' => class TightenCo\Jigsaw\IterableObject { ... }, 'posts' => class TightenCo\Jigsaw\PageVariable { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:91
5.5484 6206088 18. TightenCo\Jigsaw\Handlers\CollectionItemHandler->handle($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:124
5.5485 6205232 19. TightenCo\Jigsaw\Handlers\MarkdownHandler->handleCollectionItem($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/CollectionItemHandler.php:55
5.5485 6205232 20. TightenCo\Jigsaw\Handlers\MarkdownHandler->buildOutput($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:31
5.5485 6206288 21. Illuminate\Support\Collection->map($callback = class Closure { public $static = ['file' => class TightenCo\Jigsaw\File\InputFile { ... }, 'pageData' => class TightenCo\Jigsaw\PageData { ... }]; public $this = class TightenCo\Jigsaw\Handlers\MarkdownHandler { private $temporaryFilesystem = class TightenCo\Jigsaw\File\TemporaryFilesystem { ... }; private $parser = class TightenCo\Jigsaw\Parsers\FrontMatterParser { ... }; private $view = class TightenCo\Jigsaw\View\ViewRenderer { ... } }; public $parameter = ['$extends' => '', '$templateToExtend' => ''] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:49
5.5485 6206504 22. array_map($callback = class Closure { public $static = ['file' => class TightenCo\Jigsaw\File\InputFile { ... }, 'pageData' => class TightenCo\Jigsaw\PageData { ... }]; public $this = class TightenCo\Jigsaw\Handlers\MarkdownHandler { private $temporaryFilesystem = class TightenCo\Jigsaw\File\TemporaryFilesystem { ... }; private $parser = class TightenCo\Jigsaw\Parsers\FrontMatterParser { ... }; private $view = class TightenCo\Jigsaw\View\ViewRenderer { ... } }; public $parameter = ['$extends' => '', '$templateToExtend' => ''] }, $array = [0 => '_layouts.post'], $arrays = [0 => 0]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Collection.php:638
5.5485 6206704 23. TightenCo\Jigsaw\Handlers\MarkdownHandler->TightenCo\Jigsaw\Handlers{closure:/Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:49-64}($extends = '_layouts.post', $templateToExtend = 0) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Collection.php:638
5.5485 6207008 24. TightenCo\Jigsaw\Handlers\MarkdownHandler->render($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }, $extends = '_layouts.post') /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:61
5.5485 6207168 25. TightenCo\Jigsaw\Handlers\MarkdownHandler->renderBladeMarkdownFile($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $uniqueFileName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md_layouts.post', $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }, $extends = '_layouts.post') /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:74
5.5490 6207424 26. TightenCo\Jigsaw\View\ViewRenderer->render($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/5e83d1e3b85c58533d35bc99d3547462a2e542ef.blade.php', $data = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:100
5.5491 6207584 27. Illuminate\View\View->render($callback = ???) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/View/ViewRenderer.php:42
5.5491 6207584 28. Illuminate\View\View->renderContents() /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:91
5.5491 6207584 29. Illuminate\View\View->getContents() /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:122
5.5491 6207960 30. Illuminate\View\Engines\CompilerEngine->get($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/5e83d1e3b85c58533d35bc99d3547462a2e542ef.blade.php', $data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:139
5.5497 6208464 31. Illuminate\View\Engines\PhpEngine->evaluatePath($__path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/41098a4489e2ff6e7b3a745d6451293772516b2e.php', $__data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/Engines/CompilerEngine.php:57
5.5498 6228040 32. include('/Users/pretzelhands/Projects/pretzelhands.com/cache/41098a4489e2ff6e7b3a745d6451293772516b2e.php') /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/Engines/PhpEngine.php:41
5.5503 6252424 33. Illuminate\View\View->render($callback = ???) /Users/pretzelhands/Projects/pretzelhands.com/cache/41098a4489e2ff6e7b3a745d6451293772516b2e.php:2
5.5503 6252424 34. Illuminate\View\View->renderContents() /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:91
5.5503 6252424 35. Illuminate\View\View->getContents() /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:122
5.5503 6252800 36. TightenCo\Jigsaw\View\BladeMarkdownEngine->get($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/60d23ed81c219cbbc8f625909fcdc93ff9081ce4.blade.md', $data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'obLevel' => 0, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:139
5.5503 6252800 37. TightenCo\Jigsaw\View\BladeMarkdownEngine->evaluateBlade($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/60d23ed81c219cbbc8f625909fcdc93ff9081ce4.blade.md', $data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'obLevel' => 0, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/View/BladeMarkdownEngine.php:23
5.5503 6252800 38. Illuminate\View\Engines\CompilerEngine->get($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/60d23ed81c219cbbc8f625909fcdc93ff9081ce4.blade.md', $data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'obLevel' => 0, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/View/BladeMarkdownEngine.php:31
5.5534 6253976 39. Illuminate\View\Engines\PhpEngine->evaluatePath($__path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/26887af9992d474fa9a02d559fac7763937ce6b6.php', $__data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'obLevel' => 0, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/Engines/CompilerEngine.php:57
5.5536 6292232 40. include('/Users/pretzelhands/Projects/pretzelhands.com/cache/26887af9992d474fa9a02d559fac7763937ce6b6.php') /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/Engines/PhpEngine.php:41
5.5542 6322976 41. Illuminate\View\AnonymousComponent->data() /Users/pretzelhands/Projects/pretzelhands.com/cache/26887af9992d474fa9a02d559fac7763937ce6b6.php:13
5.5542 6322976 42. Composer\Autoload\ClassLoader->loadClass($class = 'Illuminate\View\ComponentAttributeBag') /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/AnonymousComponent.php:51
5.5542 6323136 43. Composer\Autoload\includeFile($file = '/Users/pretzelhands/Projects/pretzelhands.com/vendor/composer/../illuminate/view/ComponentAttributeBag.php') /Users/pretzelhands/Projects/pretzelhands.com/vendor/composer/ClassLoader.php:428
5.5544 6350008 44. include('/Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/ComponentAttributeBag.php') /Users/pretzelhands/Projects/pretzelhands.com/vendor/composer/ClassLoader.php:571
Deprecated: Return type of Illuminate\View\ComponentAttributeBag::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/ComponentAttributeBag.php on line 247
Call Stack:
0.0003 412936 1. {main}() /Users/pretzelhands/Projects/pretzelhands.com/vendor/bin/jigsaw:0
0.0004 416176 2. include('/Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/jigsaw') /Users/pretzelhands/Projects/pretzelhands.com/vendor/bin/jigsaw:107
0.0620 2823128 3. Symfony\Component\Console\Application->run($input = ???, $output = ???) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/jigsaw:16
0.0751 2918440 4. Symfony\Component\Console\Application->doRun($input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'build', 'env' => 'production']; protected $interactive = TRUE; private $tokens = [0 => 'build', 1 => 'production']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(113) of type (stream) }; private $consoleSectionOutputs = [] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/symfony/console/Application.php:167
0.0755 2938088 5. Symfony\Component\Console\Application->doRunCommand($command = class TightenCo\Jigsaw\Console\BuildCommand { private ${Symfony\Component\Console\Command\Command}application = class Symfony\Component\Console\Application { private $commands = [...]; private $wantHelps = FALSE; private $runningCommand = ...; private $name = 'Jigsaw'; private $version = '1.3.38'; private $commandLoader = NULL; private $catchExceptions = TRUE; private $autoExit = TRUE; private $definition = class Symfony\Component\Console\Input\InputDefinition { ... }; private $helperSet = class Symfony\Component\Console\Helper\HelperSet { ... }; private $dispatcher = NULL; private $terminal = class Symfony\Component\Console\Terminal { ... }; private $defaultCommand = 'list'; private $singleCommand = FALSE; private $initialized = TRUE; private $signalRegistry = class Symfony\Component\Console\SignalRegistry\SignalRegistry { ... }; private $signalsToDispatchEvent = [...] }; private ${Symfony\Component\Console\Command\Command}name = 'build'; private ${Symfony\Component\Console\Command\Command}processTitle = NULL; private ${Symfony\Component\Console\Command\Command}aliases = []; private ${Symfony\Component\Console\Command\Command}definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 0; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; private ${Symfony\Component\Console\Command\Command}hidden = FALSE; private ${Symfony\Component\Console\Command\Command}help = ''; private ${Symfony\Component\Console\Command\Command}description = 'Build your site.'; private ${Symfony\Component\Console\Command\Command}fullDefinition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; private ${Symfony\Component\Console\Command\Command}ignoreValidationErrors = FALSE; private ${Symfony\Component\Console\Command\Command}code = NULL; private ${Symfony\Component\Console\Command\Command}synopsis = []; private ${Symfony\Component\Console\Command\Command}usages = []; private ${Symfony\Component\Console\Command\Command}helperSet = class Symfony\Component\Console\Helper\HelperSet { private $helpers = [...]; private $command = NULL }; private $app = class Illuminate\Container\Container { protected $resolved = [...]; protected $bindings = [...]; protected $methodBindings = [...]; protected $instances = [...]; protected $aliases = [...]; protected $abstractAliases = [...]; protected $extenders = [...]; protected $tags = [...]; protected $buildStack = [...]; protected $with = [...]; public $contextual = [...]; protected $reboundCallbacks = [...]; protected $globalResolvingCallbacks = [...]; protected $globalAfterResolvingCallbacks = [...]; protected $resolvingCallbacks = [...]; protected $afterResolvingCallbacks = [...] }; private $consoleOutput = class TightenCo\Jigsaw\Console\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(94) of type (stream); private ${Symfony\Component\Console\Output\ConsoleOutput}stderr = class Symfony\Component\Console\Output\StreamOutput { ... }; private ${Symfony\Component\Console\Output\ConsoleOutput}consoleSectionOutputs = [...]; protected $progressBars = [...]; protected $sections = class Illuminate\Support\Collection { ... } }; public $input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { ... }; protected $stream = NULL; protected $options = [...]; protected $arguments = [...]; protected $interactive = TRUE; private $tokens = [...]; private $parsed = [...] }; public $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { ... }; private $consoleSectionOutputs = [...] }; public $console = class TightenCo\Jigsaw\Console\ConsoleSession { protected $input = class Symfony\Component\Console\Input\ArgvInput { ... }; protected $output = class Symfony\Component\Console\Output\ConsoleOutput { ... }; protected $question = class Symfony\Component\Console\Helper\QuestionHelper { ... } } }, $input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'build', 'env' => 'production']; protected $interactive = TRUE; private $tokens = [0 => 'build', 1 => 'production']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(113) of type (stream) }; private $consoleSectionOutputs = [] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/symfony/console/Application.php:295
0.0755 2938088 6. Symfony\Component\Console\Command\Command->run($input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'build', 'env' => 'production']; protected $interactive = TRUE; private $tokens = [0 => 'build', 1 => 'production']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(113) of type (stream) }; private $consoleSectionOutputs = [] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/symfony/console/Application.php:978
0.0756 2939848 7. TightenCo\Jigsaw\Console\Command->execute($input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'build', 'env' => 'production']; protected $interactive = TRUE; private $tokens = [0 => 'build', 1 => 'production']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(113) of type (stream) }; private $consoleSectionOutputs = [] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/symfony/console/Command/Command.php:299
0.1866 2954728 8. TightenCo\Jigsaw\Console\BuildCommand->fire() /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Console/Command.php:21
2.4188 5072192 9. TightenCo\Jigsaw\Jigsaw->build($env = 'production', $useCache = FALSE) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Console/BuildCommand.php:60
4.8672 5792944 10. TightenCo\Jigsaw\Jigsaw->buildSite($useCache = FALSE) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Jigsaw.php:46
4.8673 5792944 11. TightenCo\Jigsaw\SiteBuilder->build($source = '/Users/pretzelhands/Projects/pretzelhands.com/source', $destination = '/Users/pretzelhands/Projects/pretzelhands.com/build_production', $siteData = class TightenCo\Jigsaw\SiteData { protected $items = ['page' => class TightenCo\Jigsaw\IterableObject { ... }, 'posts' => class TightenCo\Jigsaw\PageVariable { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Jigsaw.php:76
4.8674 5792784 12. TightenCo\Jigsaw\SiteBuilder->generateFiles($source = '/Users/pretzelhands/Projects/pretzelhands.com/source', $siteData = class TightenCo\Jigsaw\SiteData { protected $items = ['page' => class TightenCo\Jigsaw\IterableObject { ... }, 'posts' => class TightenCo\Jigsaw\PageVariable { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:43
4.8702 5908840 13. Illuminate\Support\Collection->flatMap($callback = class Closure { public $static = ['siteData' => class TightenCo\Jigsaw\SiteData { ... }]; public $this = class TightenCo\Jigsaw\SiteBuilder { private $cachePath = '/Users/pretzelhands/Projects/pretzelhands.com/cache'; private $files = class TightenCo\Jigsaw\File\Filesystem { ... }; private $handlers = [...]; private $outputPathResolver = class TightenCo\Jigsaw\PathResolvers\PrettyOutputPathResolver { ... }; private $consoleOutput = class TightenCo\Jigsaw\Console\ConsoleOutput { ... }; private $useCache = FALSE }; public $parameter = ['$file' => ''] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:88
4.8702 5908840 14. Illuminate\Support\Collection->map($callback = class Closure { public $static = ['siteData' => class TightenCo\Jigsaw\SiteData { ... }]; public $this = class TightenCo\Jigsaw\SiteBuilder { private $cachePath = '/Users/pretzelhands/Projects/pretzelhands.com/cache'; private $files = class TightenCo\Jigsaw\File\Filesystem { ... }; private $handlers = [...]; private $outputPathResolver = class TightenCo\Jigsaw\PathResolvers\PrettyOutputPathResolver { ... }; private $consoleOutput = class TightenCo\Jigsaw\Console\ConsoleOutput { ... }; private $useCache = FALSE }; public $parameter = ['$file' => ''] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Traits/EnumeratesValues.php:311
4.8702 5911456 15. array_map($callback = class Closure { public $static = ['siteData' => class TightenCo\Jigsaw\SiteData { ... }]; public $this = class TightenCo\Jigsaw\SiteBuilder { private $cachePath = '/Users/pretzelhands/Projects/pretzelhands.com/cache'; private $files = class TightenCo\Jigsaw\File\Filesystem { ... }; private $handlers = [...]; private $outputPathResolver = class TightenCo\Jigsaw\PathResolvers\PrettyOutputPathResolver { ... }; private $consoleOutput = class TightenCo\Jigsaw\Console\ConsoleOutput { ... }; private $useCache = FALSE }; public $parameter = ['$file' => ''] }, $array = [0 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = class TightenCo\Jigsaw\PageVariable { ... } }, 1 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 2 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 3 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 4 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 5 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 6 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 7 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 8 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 9 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 10 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 11 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 12 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 13 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 14 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 15 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 16 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 17 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 18 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 19 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 20 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 21 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 22 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 23 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 24 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 25 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 26 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 27 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 28 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 29 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 30 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 31 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 32 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 33 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 34 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 35 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 36 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 37 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 38 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 39 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 40 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 41 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 42 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 43 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 44 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 45 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 46 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 47 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 48 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 49 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 50 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 51 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 52 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 53 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 54 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 55 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 56 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 57 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 58 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 59 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 60 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 61 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 62 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 63 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 64 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 65 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }], $arrays = [0 => 0, 1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10, 11 => 11, 12 => 12, 13 => 13, 14 => 14, 15 => 15, 16 => 16, 17 => 17, 18 => 18, 19 => 19, 20 => 20, 21 => 21, 22 => 22, 23 => 23, 24 => 24, 25 => 25, 26 => 26, 27 => 27, 28 => 28, 29 => 29, 30 => 30, 31 => 31, 32 => 32, 33 => 33, 34 => 34, 35 => 35, 36 => 36, 37 => 37, 38 => 38, 39 => 39, 40 => 40, 41 => 41, 42 => 42, 43 => 43, 44 => 44, 45 => 45, 46 => 46, 47 => 47, 48 => 48, 49 => 49, 50 => 50, 51 => 51, 52 => 52, 53 => 53, 54 => 54, 55 => 55, 56 => 56, 57 => 57, 58 => 58, 59 => 59, 60 => 60, 61 => 61, 62 => 62, 63 => 63, 64 => 64, 65 => 65]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Collection.php:638
5.5483 6205968 16. TightenCo\Jigsaw\SiteBuilder->TightenCo\Jigsaw{closure:/Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:88-92}($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, 3) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Collection.php:638
5.5483 6205968 17. TightenCo\Jigsaw\SiteBuilder->handle($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $siteData = class TightenCo\Jigsaw\SiteData { protected $items = ['page' => class TightenCo\Jigsaw\IterableObject { ... }, 'posts' => class TightenCo\Jigsaw\PageVariable { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:91
5.5484 6206088 18. TightenCo\Jigsaw\Handlers\CollectionItemHandler->handle($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:124
5.5485 6205232 19. TightenCo\Jigsaw\Handlers\MarkdownHandler->handleCollectionItem($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/CollectionItemHandler.php:55
5.5485 6205232 20. TightenCo\Jigsaw\Handlers\MarkdownHandler->buildOutput($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:31
5.5485 6206288 21. Illuminate\Support\Collection->map($callback = class Closure { public $static = ['file' => class TightenCo\Jigsaw\File\InputFile { ... }, 'pageData' => class TightenCo\Jigsaw\PageData { ... }]; public $this = class TightenCo\Jigsaw\Handlers\MarkdownHandler { private $temporaryFilesystem = class TightenCo\Jigsaw\File\TemporaryFilesystem { ... }; private $parser = class TightenCo\Jigsaw\Parsers\FrontMatterParser { ... }; private $view = class TightenCo\Jigsaw\View\ViewRenderer { ... } }; public $parameter = ['$extends' => '', '$templateToExtend' => ''] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:49
5.5485 6206504 22. array_map($callback = class Closure { public $static = ['file' => class TightenCo\Jigsaw\File\InputFile { ... }, 'pageData' => class TightenCo\Jigsaw\PageData { ... }]; public $this = class TightenCo\Jigsaw\Handlers\MarkdownHandler { private $temporaryFilesystem = class TightenCo\Jigsaw\File\TemporaryFilesystem { ... }; private $parser = class TightenCo\Jigsaw\Parsers\FrontMatterParser { ... }; private $view = class TightenCo\Jigsaw\View\ViewRenderer { ... } }; public $parameter = ['$extends' => '', '$templateToExtend' => ''] }, $array = [0 => '_layouts.post'], $arrays = [0 => 0]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Collection.php:638
5.5485 6206704 23. TightenCo\Jigsaw\Handlers\MarkdownHandler->TightenCo\Jigsaw\Handlers{closure:/Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:49-64}($extends = '_layouts.post', $templateToExtend = 0) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Collection.php:638
5.5485 6207008 24. TightenCo\Jigsaw\Handlers\MarkdownHandler->render($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }, $extends = '_layouts.post') /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:61
5.5485 6207168 25. TightenCo\Jigsaw\Handlers\MarkdownHandler->renderBladeMarkdownFile($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $uniqueFileName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md_layouts.post', $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }, $extends = '_layouts.post') /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:74
5.5490 6207424 26. TightenCo\Jigsaw\View\ViewRenderer->render($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/5e83d1e3b85c58533d35bc99d3547462a2e542ef.blade.php', $data = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:100
5.5491 6207584 27. Illuminate\View\View->render($callback = ???) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/View/ViewRenderer.php:42
5.5491 6207584 28. Illuminate\View\View->renderContents() /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:91
5.5491 6207584 29. Illuminate\View\View->getContents() /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:122
5.5491 6207960 30. Illuminate\View\Engines\CompilerEngine->get($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/5e83d1e3b85c58533d35bc99d3547462a2e542ef.blade.php', $data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:139
5.5497 6208464 31. Illuminate\View\Engines\PhpEngine->evaluatePath($__path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/41098a4489e2ff6e7b3a745d6451293772516b2e.php', $__data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/Engines/CompilerEngine.php:57
5.5498 6228040 32. include('/Users/pretzelhands/Projects/pretzelhands.com/cache/41098a4489e2ff6e7b3a745d6451293772516b2e.php') /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/Engines/PhpEngine.php:41
5.5503 6252424 33. Illuminate\View\View->render($callback = ???) /Users/pretzelhands/Projects/pretzelhands.com/cache/41098a4489e2ff6e7b3a745d6451293772516b2e.php:2
5.5503 6252424 34. Illuminate\View\View->renderContents() /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:91
5.5503 6252424 35. Illuminate\View\View->getContents() /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:122
5.5503 6252800 36. TightenCo\Jigsaw\View\BladeMarkdownEngine->get($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/60d23ed81c219cbbc8f625909fcdc93ff9081ce4.blade.md', $data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'obLevel' => 0, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:139
5.5503 6252800 37. TightenCo\Jigsaw\View\BladeMarkdownEngine->evaluateBlade($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/60d23ed81c219cbbc8f625909fcdc93ff9081ce4.blade.md', $data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'obLevel' => 0, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/View/BladeMarkdownEngine.php:23
5.5503 6252800 38. Illuminate\View\Engines\CompilerEngine->get($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/60d23ed81c219cbbc8f625909fcdc93ff9081ce4.blade.md', $data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'obLevel' => 0, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/View/BladeMarkdownEngine.php:31
5.5534 6253976 39. Illuminate\View\Engines\PhpEngine->evaluatePath($__path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/26887af9992d474fa9a02d559fac7763937ce6b6.php', $__data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'obLevel' => 0, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/Engines/CompilerEngine.php:57
5.5536 6292232 40. include('/Users/pretzelhands/Projects/pretzelhands.com/cache/26887af9992d474fa9a02d559fac7763937ce6b6.php') /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/Engines/PhpEngine.php:41
5.5542 6322976 41. Illuminate\View\AnonymousComponent->data() /Users/pretzelhands/Projects/pretzelhands.com/cache/26887af9992d474fa9a02d559fac7763937ce6b6.php:13
5.5542 6322976 42. Composer\Autoload\ClassLoader->loadClass($class = 'Illuminate\View\ComponentAttributeBag') /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/AnonymousComponent.php:51
5.5542 6323136 43. Composer\Autoload\includeFile($file = '/Users/pretzelhands/Projects/pretzelhands.com/vendor/composer/../illuminate/view/ComponentAttributeBag.php') /Users/pretzelhands/Projects/pretzelhands.com/vendor/composer/ClassLoader.php:428
5.5544 6350008 44. include('/Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/ComponentAttributeBag.php') /Users/pretzelhands/Projects/pretzelhands.com/vendor/composer/ClassLoader.php:571
Deprecated: Return type of Illuminate\View\ComponentAttributeBag::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/ComponentAttributeBag.php on line 259
Call Stack:
0.0003 412936 1. {main}() /Users/pretzelhands/Projects/pretzelhands.com/vendor/bin/jigsaw:0
0.0004 416176 2. include('/Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/jigsaw') /Users/pretzelhands/Projects/pretzelhands.com/vendor/bin/jigsaw:107
0.0620 2823128 3. Symfony\Component\Console\Application->run($input = ???, $output = ???) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/jigsaw:16
0.0751 2918440 4. Symfony\Component\Console\Application->doRun($input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'build', 'env' => 'production']; protected $interactive = TRUE; private $tokens = [0 => 'build', 1 => 'production']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(113) of type (stream) }; private $consoleSectionOutputs = [] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/symfony/console/Application.php:167
0.0755 2938088 5. Symfony\Component\Console\Application->doRunCommand($command = class TightenCo\Jigsaw\Console\BuildCommand { private ${Symfony\Component\Console\Command\Command}application = class Symfony\Component\Console\Application { private $commands = [...]; private $wantHelps = FALSE; private $runningCommand = ...; private $name = 'Jigsaw'; private $version = '1.3.38'; private $commandLoader = NULL; private $catchExceptions = TRUE; private $autoExit = TRUE; private $definition = class Symfony\Component\Console\Input\InputDefinition { ... }; private $helperSet = class Symfony\Component\Console\Helper\HelperSet { ... }; private $dispatcher = NULL; private $terminal = class Symfony\Component\Console\Terminal { ... }; private $defaultCommand = 'list'; private $singleCommand = FALSE; private $initialized = TRUE; private $signalRegistry = class Symfony\Component\Console\SignalRegistry\SignalRegistry { ... }; private $signalsToDispatchEvent = [...] }; private ${Symfony\Component\Console\Command\Command}name = 'build'; private ${Symfony\Component\Console\Command\Command}processTitle = NULL; private ${Symfony\Component\Console\Command\Command}aliases = []; private ${Symfony\Component\Console\Command\Command}definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 0; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; private ${Symfony\Component\Console\Command\Command}hidden = FALSE; private ${Symfony\Component\Console\Command\Command}help = ''; private ${Symfony\Component\Console\Command\Command}description = 'Build your site.'; private ${Symfony\Component\Console\Command\Command}fullDefinition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; private ${Symfony\Component\Console\Command\Command}ignoreValidationErrors = FALSE; private ${Symfony\Component\Console\Command\Command}code = NULL; private ${Symfony\Component\Console\Command\Command}synopsis = []; private ${Symfony\Component\Console\Command\Command}usages = []; private ${Symfony\Component\Console\Command\Command}helperSet = class Symfony\Component\Console\Helper\HelperSet { private $helpers = [...]; private $command = NULL }; private $app = class Illuminate\Container\Container { protected $resolved = [...]; protected $bindings = [...]; protected $methodBindings = [...]; protected $instances = [...]; protected $aliases = [...]; protected $abstractAliases = [...]; protected $extenders = [...]; protected $tags = [...]; protected $buildStack = [...]; protected $with = [...]; public $contextual = [...]; protected $reboundCallbacks = [...]; protected $globalResolvingCallbacks = [...]; protected $globalAfterResolvingCallbacks = [...]; protected $resolvingCallbacks = [...]; protected $afterResolvingCallbacks = [...] }; private $consoleOutput = class TightenCo\Jigsaw\Console\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(94) of type (stream); private ${Symfony\Component\Console\Output\ConsoleOutput}stderr = class Symfony\Component\Console\Output\StreamOutput { ... }; private ${Symfony\Component\Console\Output\ConsoleOutput}consoleSectionOutputs = [...]; protected $progressBars = [...]; protected $sections = class Illuminate\Support\Collection { ... } }; public $input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { ... }; protected $stream = NULL; protected $options = [...]; protected $arguments = [...]; protected $interactive = TRUE; private $tokens = [...]; private $parsed = [...] }; public $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { ... }; private $consoleSectionOutputs = [...] }; public $console = class TightenCo\Jigsaw\Console\ConsoleSession { protected $input = class Symfony\Component\Console\Input\ArgvInput { ... }; protected $output = class Symfony\Component\Console\Output\ConsoleOutput { ... }; protected $question = class Symfony\Component\Console\Helper\QuestionHelper { ... } } }, $input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'build', 'env' => 'production']; protected $interactive = TRUE; private $tokens = [0 => 'build', 1 => 'production']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(113) of type (stream) }; private $consoleSectionOutputs = [] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/symfony/console/Application.php:295
0.0755 2938088 6. Symfony\Component\Console\Command\Command->run($input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'build', 'env' => 'production']; protected $interactive = TRUE; private $tokens = [0 => 'build', 1 => 'production']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(113) of type (stream) }; private $consoleSectionOutputs = [] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/symfony/console/Application.php:978
0.0756 2939848 7. TightenCo\Jigsaw\Console\Command->execute($input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'build', 'env' => 'production']; protected $interactive = TRUE; private $tokens = [0 => 'build', 1 => 'production']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(113) of type (stream) }; private $consoleSectionOutputs = [] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/symfony/console/Command/Command.php:299
0.1866 2954728 8. TightenCo\Jigsaw\Console\BuildCommand->fire() /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Console/Command.php:21
2.4188 5072192 9. TightenCo\Jigsaw\Jigsaw->build($env = 'production', $useCache = FALSE) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Console/BuildCommand.php:60
4.8672 5792944 10. TightenCo\Jigsaw\Jigsaw->buildSite($useCache = FALSE) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Jigsaw.php:46
4.8673 5792944 11. TightenCo\Jigsaw\SiteBuilder->build($source = '/Users/pretzelhands/Projects/pretzelhands.com/source', $destination = '/Users/pretzelhands/Projects/pretzelhands.com/build_production', $siteData = class TightenCo\Jigsaw\SiteData { protected $items = ['page' => class TightenCo\Jigsaw\IterableObject { ... }, 'posts' => class TightenCo\Jigsaw\PageVariable { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Jigsaw.php:76
4.8674 5792784 12. TightenCo\Jigsaw\SiteBuilder->generateFiles($source = '/Users/pretzelhands/Projects/pretzelhands.com/source', $siteData = class TightenCo\Jigsaw\SiteData { protected $items = ['page' => class TightenCo\Jigsaw\IterableObject { ... }, 'posts' => class TightenCo\Jigsaw\PageVariable { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:43
4.8702 5908840 13. Illuminate\Support\Collection->flatMap($callback = class Closure { public $static = ['siteData' => class TightenCo\Jigsaw\SiteData { ... }]; public $this = class TightenCo\Jigsaw\SiteBuilder { private $cachePath = '/Users/pretzelhands/Projects/pretzelhands.com/cache'; private $files = class TightenCo\Jigsaw\File\Filesystem { ... }; private $handlers = [...]; private $outputPathResolver = class TightenCo\Jigsaw\PathResolvers\PrettyOutputPathResolver { ... }; private $consoleOutput = class TightenCo\Jigsaw\Console\ConsoleOutput { ... }; private $useCache = FALSE }; public $parameter = ['$file' => ''] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:88
4.8702 5908840 14. Illuminate\Support\Collection->map($callback = class Closure { public $static = ['siteData' => class TightenCo\Jigsaw\SiteData { ... }]; public $this = class TightenCo\Jigsaw\SiteBuilder { private $cachePath = '/Users/pretzelhands/Projects/pretzelhands.com/cache'; private $files = class TightenCo\Jigsaw\File\Filesystem { ... }; private $handlers = [...]; private $outputPathResolver = class TightenCo\Jigsaw\PathResolvers\PrettyOutputPathResolver { ... }; private $consoleOutput = class TightenCo\Jigsaw\Console\ConsoleOutput { ... }; private $useCache = FALSE }; public $parameter = ['$file' => ''] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Traits/EnumeratesValues.php:311
4.8702 5911456 15. array_map($callback = class Closure { public $static = ['siteData' => class TightenCo\Jigsaw\SiteData { ... }]; public $this = class TightenCo\Jigsaw\SiteBuilder { private $cachePath = '/Users/pretzelhands/Projects/pretzelhands.com/cache'; private $files = class TightenCo\Jigsaw\File\Filesystem { ... }; private $handlers = [...]; private $outputPathResolver = class TightenCo\Jigsaw\PathResolvers\PrettyOutputPathResolver { ... }; private $consoleOutput = class TightenCo\Jigsaw\Console\ConsoleOutput { ... }; private $useCache = FALSE }; public $parameter = ['$file' => ''] }, $array = [0 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = class TightenCo\Jigsaw\PageVariable { ... } }, 1 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 2 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 3 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 4 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 5 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 6 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 7 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 8 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 9 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 10 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 11 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 12 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 13 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 14 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 15 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 16 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 17 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 18 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 19 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 20 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 21 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 22 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 23 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 24 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 25 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 26 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 27 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 28 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 29 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 30 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 31 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 32 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 33 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 34 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 35 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 36 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 37 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 38 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 39 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 40 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 41 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 42 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 43 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 44 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 45 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 46 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 47 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 48 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 49 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 50 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 51 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 52 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 53 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 54 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 55 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 56 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 57 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 58 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 59 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 60 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 61 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 62 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 63 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 64 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 65 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }], $arrays = [0 => 0, 1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10, 11 => 11, 12 => 12, 13 => 13, 14 => 14, 15 => 15, 16 => 16, 17 => 17, 18 => 18, 19 => 19, 20 => 20, 21 => 21, 22 => 22, 23 => 23, 24 => 24, 25 => 25, 26 => 26, 27 => 27, 28 => 28, 29 => 29, 30 => 30, 31 => 31, 32 => 32, 33 => 33, 34 => 34, 35 => 35, 36 => 36, 37 => 37, 38 => 38, 39 => 39, 40 => 40, 41 => 41, 42 => 42, 43 => 43, 44 => 44, 45 => 45, 46 => 46, 47 => 47, 48 => 48, 49 => 49, 50 => 50, 51 => 51, 52 => 52, 53 => 53, 54 => 54, 55 => 55, 56 => 56, 57 => 57, 58 => 58, 59 => 59, 60 => 60, 61 => 61, 62 => 62, 63 => 63, 64 => 64, 65 => 65]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Collection.php:638
5.5483 6205968 16. TightenCo\Jigsaw\SiteBuilder->TightenCo\Jigsaw{closure:/Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:88-92}($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, 3) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Collection.php:638
5.5483 6205968 17. TightenCo\Jigsaw\SiteBuilder->handle($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $siteData = class TightenCo\Jigsaw\SiteData { protected $items = ['page' => class TightenCo\Jigsaw\IterableObject { ... }, 'posts' => class TightenCo\Jigsaw\PageVariable { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:91
5.5484 6206088 18. TightenCo\Jigsaw\Handlers\CollectionItemHandler->handle($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:124
5.5485 6205232 19. TightenCo\Jigsaw\Handlers\MarkdownHandler->handleCollectionItem($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/CollectionItemHandler.php:55
5.5485 6205232 20. TightenCo\Jigsaw\Handlers\MarkdownHandler->buildOutput($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:31
5.5485 6206288 21. Illuminate\Support\Collection->map($callback = class Closure { public $static = ['file' => class TightenCo\Jigsaw\File\InputFile { ... }, 'pageData' => class TightenCo\Jigsaw\PageData { ... }]; public $this = class TightenCo\Jigsaw\Handlers\MarkdownHandler { private $temporaryFilesystem = class TightenCo\Jigsaw\File\TemporaryFilesystem { ... }; private $parser = class TightenCo\Jigsaw\Parsers\FrontMatterParser { ... }; private $view = class TightenCo\Jigsaw\View\ViewRenderer { ... } }; public $parameter = ['$extends' => '', '$templateToExtend' => ''] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:49
5.5485 6206504 22. array_map($callback = class Closure { public $static = ['file' => class TightenCo\Jigsaw\File\InputFile { ... }, 'pageData' => class TightenCo\Jigsaw\PageData { ... }]; public $this = class TightenCo\Jigsaw\Handlers\MarkdownHandler { private $temporaryFilesystem = class TightenCo\Jigsaw\File\TemporaryFilesystem { ... }; private $parser = class TightenCo\Jigsaw\Parsers\FrontMatterParser { ... }; private $view = class TightenCo\Jigsaw\View\ViewRenderer { ... } }; public $parameter = ['$extends' => '', '$templateToExtend' => ''] }, $array = [0 => '_layouts.post'], $arrays = [0 => 0]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Collection.php:638
5.5485 6206704 23. TightenCo\Jigsaw\Handlers\MarkdownHandler->TightenCo\Jigsaw\Handlers{closure:/Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:49-64}($extends = '_layouts.post', $templateToExtend = 0) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Collection.php:638
5.5485 6207008 24. TightenCo\Jigsaw\Handlers\MarkdownHandler->render($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }, $extends = '_layouts.post') /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:61
5.5485 6207168 25. TightenCo\Jigsaw\Handlers\MarkdownHandler->renderBladeMarkdownFile($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $uniqueFileName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md_layouts.post', $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }, $extends = '_layouts.post') /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:74
5.5490 6207424 26. TightenCo\Jigsaw\View\ViewRenderer->render($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/5e83d1e3b85c58533d35bc99d3547462a2e542ef.blade.php', $data = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:100
5.5491 6207584 27. Illuminate\View\View->render($callback = ???) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/View/ViewRenderer.php:42
5.5491 6207584 28. Illuminate\View\View->renderContents() /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:91
5.5491 6207584 29. Illuminate\View\View->getContents() /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:122
5.5491 6207960 30. Illuminate\View\Engines\CompilerEngine->get($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/5e83d1e3b85c58533d35bc99d3547462a2e542ef.blade.php', $data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:139
5.5497 6208464 31. Illuminate\View\Engines\PhpEngine->evaluatePath($__path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/41098a4489e2ff6e7b3a745d6451293772516b2e.php', $__data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/Engines/CompilerEngine.php:57
5.5498 6228040 32. include('/Users/pretzelhands/Projects/pretzelhands.com/cache/41098a4489e2ff6e7b3a745d6451293772516b2e.php') /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/Engines/PhpEngine.php:41
5.5503 6252424 33. Illuminate\View\View->render($callback = ???) /Users/pretzelhands/Projects/pretzelhands.com/cache/41098a4489e2ff6e7b3a745d6451293772516b2e.php:2
5.5503 6252424 34. Illuminate\View\View->renderContents() /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:91
5.5503 6252424 35. Illuminate\View\View->getContents() /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:122
5.5503 6252800 36. TightenCo\Jigsaw\View\BladeMarkdownEngine->get($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/60d23ed81c219cbbc8f625909fcdc93ff9081ce4.blade.md', $data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'obLevel' => 0, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:139
5.5503 6252800 37. TightenCo\Jigsaw\View\BladeMarkdownEngine->evaluateBlade($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/60d23ed81c219cbbc8f625909fcdc93ff9081ce4.blade.md', $data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'obLevel' => 0, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/View/BladeMarkdownEngine.php:23
5.5503 6252800 38. Illuminate\View\Engines\CompilerEngine->get($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/60d23ed81c219cbbc8f625909fcdc93ff9081ce4.blade.md', $data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'obLevel' => 0, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/View/BladeMarkdownEngine.php:31
5.5534 6253976 39. Illuminate\View\Engines\PhpEngine->evaluatePath($__path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/26887af9992d474fa9a02d559fac7763937ce6b6.php', $__data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'obLevel' => 0, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/Engines/CompilerEngine.php:57
5.5536 6292232 40. include('/Users/pretzelhands/Projects/pretzelhands.com/cache/26887af9992d474fa9a02d559fac7763937ce6b6.php') /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/Engines/PhpEngine.php:41
5.5542 6322976 41. Illuminate\View\AnonymousComponent->data() /Users/pretzelhands/Projects/pretzelhands.com/cache/26887af9992d474fa9a02d559fac7763937ce6b6.php:13
5.5542 6322976 42. Composer\Autoload\ClassLoader->loadClass($class = 'Illuminate\View\ComponentAttributeBag') /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/AnonymousComponent.php:51
5.5542 6323136 43. Composer\Autoload\includeFile($file = '/Users/pretzelhands/Projects/pretzelhands.com/vendor/composer/../illuminate/view/ComponentAttributeBag.php') /Users/pretzelhands/Projects/pretzelhands.com/vendor/composer/ClassLoader.php:428
5.5544 6350008 44. include('/Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/ComponentAttributeBag.php') /Users/pretzelhands/Projects/pretzelhands.com/vendor/composer/ClassLoader.php:571
Deprecated: Return type of Illuminate\View\ComponentAttributeBag::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/ComponentAttributeBag.php on line 270
Call Stack:
0.0003 412936 1. {main}() /Users/pretzelhands/Projects/pretzelhands.com/vendor/bin/jigsaw:0
0.0004 416176 2. include('/Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/jigsaw') /Users/pretzelhands/Projects/pretzelhands.com/vendor/bin/jigsaw:107
0.0620 2823128 3. Symfony\Component\Console\Application->run($input = ???, $output = ???) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/jigsaw:16
0.0751 2918440 4. Symfony\Component\Console\Application->doRun($input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'build', 'env' => 'production']; protected $interactive = TRUE; private $tokens = [0 => 'build', 1 => 'production']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(113) of type (stream) }; private $consoleSectionOutputs = [] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/symfony/console/Application.php:167
0.0755 2938088 5. Symfony\Component\Console\Application->doRunCommand($command = class TightenCo\Jigsaw\Console\BuildCommand { private ${Symfony\Component\Console\Command\Command}application = class Symfony\Component\Console\Application { private $commands = [...]; private $wantHelps = FALSE; private $runningCommand = ...; private $name = 'Jigsaw'; private $version = '1.3.38'; private $commandLoader = NULL; private $catchExceptions = TRUE; private $autoExit = TRUE; private $definition = class Symfony\Component\Console\Input\InputDefinition { ... }; private $helperSet = class Symfony\Component\Console\Helper\HelperSet { ... }; private $dispatcher = NULL; private $terminal = class Symfony\Component\Console\Terminal { ... }; private $defaultCommand = 'list'; private $singleCommand = FALSE; private $initialized = TRUE; private $signalRegistry = class Symfony\Component\Console\SignalRegistry\SignalRegistry { ... }; private $signalsToDispatchEvent = [...] }; private ${Symfony\Component\Console\Command\Command}name = 'build'; private ${Symfony\Component\Console\Command\Command}processTitle = NULL; private ${Symfony\Component\Console\Command\Command}aliases = []; private ${Symfony\Component\Console\Command\Command}definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 0; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; private ${Symfony\Component\Console\Command\Command}hidden = FALSE; private ${Symfony\Component\Console\Command\Command}help = ''; private ${Symfony\Component\Console\Command\Command}description = 'Build your site.'; private ${Symfony\Component\Console\Command\Command}fullDefinition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; private ${Symfony\Component\Console\Command\Command}ignoreValidationErrors = FALSE; private ${Symfony\Component\Console\Command\Command}code = NULL; private ${Symfony\Component\Console\Command\Command}synopsis = []; private ${Symfony\Component\Console\Command\Command}usages = []; private ${Symfony\Component\Console\Command\Command}helperSet = class Symfony\Component\Console\Helper\HelperSet { private $helpers = [...]; private $command = NULL }; private $app = class Illuminate\Container\Container { protected $resolved = [...]; protected $bindings = [...]; protected $methodBindings = [...]; protected $instances = [...]; protected $aliases = [...]; protected $abstractAliases = [...]; protected $extenders = [...]; protected $tags = [...]; protected $buildStack = [...]; protected $with = [...]; public $contextual = [...]; protected $reboundCallbacks = [...]; protected $globalResolvingCallbacks = [...]; protected $globalAfterResolvingCallbacks = [...]; protected $resolvingCallbacks = [...]; protected $afterResolvingCallbacks = [...] }; private $consoleOutput = class TightenCo\Jigsaw\Console\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(94) of type (stream); private ${Symfony\Component\Console\Output\ConsoleOutput}stderr = class Symfony\Component\Console\Output\StreamOutput { ... }; private ${Symfony\Component\Console\Output\ConsoleOutput}consoleSectionOutputs = [...]; protected $progressBars = [...]; protected $sections = class Illuminate\Support\Collection { ... } }; public $input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { ... }; protected $stream = NULL; protected $options = [...]; protected $arguments = [...]; protected $interactive = TRUE; private $tokens = [...]; private $parsed = [...] }; public $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { ... }; private $consoleSectionOutputs = [...] }; public $console = class TightenCo\Jigsaw\Console\ConsoleSession { protected $input = class Symfony\Component\Console\Input\ArgvInput { ... }; protected $output = class Symfony\Component\Console\Output\ConsoleOutput { ... }; protected $question = class Symfony\Component\Console\Helper\QuestionHelper { ... } } }, $input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'build', 'env' => 'production']; protected $interactive = TRUE; private $tokens = [0 => 'build', 1 => 'production']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(113) of type (stream) }; private $consoleSectionOutputs = [] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/symfony/console/Application.php:295
0.0755 2938088 6. Symfony\Component\Console\Command\Command->run($input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'build', 'env' => 'production']; protected $interactive = TRUE; private $tokens = [0 => 'build', 1 => 'production']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(113) of type (stream) }; private $consoleSectionOutputs = [] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/symfony/console/Application.php:978
0.0756 2939848 7. TightenCo\Jigsaw\Console\Command->execute($input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'build', 'env' => 'production']; protected $interactive = TRUE; private $tokens = [0 => 'build', 1 => 'production']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(113) of type (stream) }; private $consoleSectionOutputs = [] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/symfony/console/Command/Command.php:299
0.1866 2954728 8. TightenCo\Jigsaw\Console\BuildCommand->fire() /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Console/Command.php:21
2.4188 5072192 9. TightenCo\Jigsaw\Jigsaw->build($env = 'production', $useCache = FALSE) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Console/BuildCommand.php:60
4.8672 5792944 10. TightenCo\Jigsaw\Jigsaw->buildSite($useCache = FALSE) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Jigsaw.php:46
4.8673 5792944 11. TightenCo\Jigsaw\SiteBuilder->build($source = '/Users/pretzelhands/Projects/pretzelhands.com/source', $destination = '/Users/pretzelhands/Projects/pretzelhands.com/build_production', $siteData = class TightenCo\Jigsaw\SiteData { protected $items = ['page' => class TightenCo\Jigsaw\IterableObject { ... }, 'posts' => class TightenCo\Jigsaw\PageVariable { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Jigsaw.php:76
4.8674 5792784 12. TightenCo\Jigsaw\SiteBuilder->generateFiles($source = '/Users/pretzelhands/Projects/pretzelhands.com/source', $siteData = class TightenCo\Jigsaw\SiteData { protected $items = ['page' => class TightenCo\Jigsaw\IterableObject { ... }, 'posts' => class TightenCo\Jigsaw\PageVariable { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:43
4.8702 5908840 13. Illuminate\Support\Collection->flatMap($callback = class Closure { public $static = ['siteData' => class TightenCo\Jigsaw\SiteData { ... }]; public $this = class TightenCo\Jigsaw\SiteBuilder { private $cachePath = '/Users/pretzelhands/Projects/pretzelhands.com/cache'; private $files = class TightenCo\Jigsaw\File\Filesystem { ... }; private $handlers = [...]; private $outputPathResolver = class TightenCo\Jigsaw\PathResolvers\PrettyOutputPathResolver { ... }; private $consoleOutput = class TightenCo\Jigsaw\Console\ConsoleOutput { ... }; private $useCache = FALSE }; public $parameter = ['$file' => ''] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:88
4.8702 5908840 14. Illuminate\Support\Collection->map($callback = class Closure { public $static = ['siteData' => class TightenCo\Jigsaw\SiteData { ... }]; public $this = class TightenCo\Jigsaw\SiteBuilder { private $cachePath = '/Users/pretzelhands/Projects/pretzelhands.com/cache'; private $files = class TightenCo\Jigsaw\File\Filesystem { ... }; private $handlers = [...]; private $outputPathResolver = class TightenCo\Jigsaw\PathResolvers\PrettyOutputPathResolver { ... }; private $consoleOutput = class TightenCo\Jigsaw\Console\ConsoleOutput { ... }; private $useCache = FALSE }; public $parameter = ['$file' => ''] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Traits/EnumeratesValues.php:311
4.8702 5911456 15. array_map($callback = class Closure { public $static = ['siteData' => class TightenCo\Jigsaw\SiteData { ... }]; public $this = class TightenCo\Jigsaw\SiteBuilder { private $cachePath = '/Users/pretzelhands/Projects/pretzelhands.com/cache'; private $files = class TightenCo\Jigsaw\File\Filesystem { ... }; private $handlers = [...]; private $outputPathResolver = class TightenCo\Jigsaw\PathResolvers\PrettyOutputPathResolver { ... }; private $consoleOutput = class TightenCo\Jigsaw\Console\ConsoleOutput { ... }; private $useCache = FALSE }; public $parameter = ['$file' => ''] }, $array = [0 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = class TightenCo\Jigsaw\PageVariable { ... } }, 1 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 2 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 3 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 4 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 5 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 6 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 7 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 8 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 9 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 10 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 11 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 12 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 13 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 14 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 15 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 16 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 17 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 18 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 19 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 20 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 21 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 22 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 23 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 24 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 25 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 26 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 27 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 28 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 29 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 30 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 31 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 32 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 33 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 34 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 35 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 36 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 37 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 38 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 39 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 40 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 41 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 42 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 43 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 44 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 45 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 46 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 47 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 48 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 49 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 50 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 51 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 52 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 53 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 54 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 55 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 56 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 57 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 58 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 59 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 60 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 61 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 62 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 63 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 64 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 65 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }], $arrays = [0 => 0, 1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10, 11 => 11, 12 => 12, 13 => 13, 14 => 14, 15 => 15, 16 => 16, 17 => 17, 18 => 18, 19 => 19, 20 => 20, 21 => 21, 22 => 22, 23 => 23, 24 => 24, 25 => 25, 26 => 26, 27 => 27, 28 => 28, 29 => 29, 30 => 30, 31 => 31, 32 => 32, 33 => 33, 34 => 34, 35 => 35, 36 => 36, 37 => 37, 38 => 38, 39 => 39, 40 => 40, 41 => 41, 42 => 42, 43 => 43, 44 => 44, 45 => 45, 46 => 46, 47 => 47, 48 => 48, 49 => 49, 50 => 50, 51 => 51, 52 => 52, 53 => 53, 54 => 54, 55 => 55, 56 => 56, 57 => 57, 58 => 58, 59 => 59, 60 => 60, 61 => 61, 62 => 62, 63 => 63, 64 => 64, 65 => 65]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Collection.php:638
5.5483 6205968 16. TightenCo\Jigsaw\SiteBuilder->TightenCo\Jigsaw{closure:/Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:88-92}($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, 3) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Collection.php:638
5.5483 6205968 17. TightenCo\Jigsaw\SiteBuilder->handle($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $siteData = class TightenCo\Jigsaw\SiteData { protected $items = ['page' => class TightenCo\Jigsaw\IterableObject { ... }, 'posts' => class TightenCo\Jigsaw\PageVariable { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:91
5.5484 6206088 18. TightenCo\Jigsaw\Handlers\CollectionItemHandler->handle($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:124
5.5485 6205232 19. TightenCo\Jigsaw\Handlers\MarkdownHandler->handleCollectionItem($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/CollectionItemHandler.php:55
5.5485 6205232 20. TightenCo\Jigsaw\Handlers\MarkdownHandler->buildOutput($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:31
5.5485 6206288 21. Illuminate\Support\Collection->map($callback = class Closure { public $static = ['file' => class TightenCo\Jigsaw\File\InputFile { ... }, 'pageData' => class TightenCo\Jigsaw\PageData { ... }]; public $this = class TightenCo\Jigsaw\Handlers\MarkdownHandler { private $temporaryFilesystem = class TightenCo\Jigsaw\File\TemporaryFilesystem { ... }; private $parser = class TightenCo\Jigsaw\Parsers\FrontMatterParser { ... }; private $view = class TightenCo\Jigsaw\View\ViewRenderer { ... } }; public $parameter = ['$extends' => '', '$templateToExtend' => ''] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:49
5.5485 6206504 22. array_map($callback = class Closure { public $static = ['file' => class TightenCo\Jigsaw\File\InputFile { ... }, 'pageData' => class TightenCo\Jigsaw\PageData { ... }]; public $this = class TightenCo\Jigsaw\Handlers\MarkdownHandler { private $temporaryFilesystem = class TightenCo\Jigsaw\File\TemporaryFilesystem { ... }; private $parser = class TightenCo\Jigsaw\Parsers\FrontMatterParser { ... }; private $view = class TightenCo\Jigsaw\View\ViewRenderer { ... } }; public $parameter = ['$extends' => '', '$templateToExtend' => ''] }, $array = [0 => '_layouts.post'], $arrays = [0 => 0]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Collection.php:638
5.5485 6206704 23. TightenCo\Jigsaw\Handlers\MarkdownHandler->TightenCo\Jigsaw\Handlers{closure:/Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:49-64}($extends = '_layouts.post', $templateToExtend = 0) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Collection.php:638
5.5485 6207008 24. TightenCo\Jigsaw\Handlers\MarkdownHandler->render($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }, $extends = '_layouts.post') /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:61
5.5485 6207168 25. TightenCo\Jigsaw\Handlers\MarkdownHandler->renderBladeMarkdownFile($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $uniqueFileName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md_layouts.post', $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }, $extends = '_layouts.post') /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:74
5.5490 6207424 26. TightenCo\Jigsaw\View\ViewRenderer->render($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/5e83d1e3b85c58533d35bc99d3547462a2e542ef.blade.php', $data = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:100
5.5491 6207584 27. Illuminate\View\View->render($callback = ???) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/View/ViewRenderer.php:42
5.5491 6207584 28. Illuminate\View\View->renderContents() /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:91
5.5491 6207584 29. Illuminate\View\View->getContents() /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:122
5.5491 6207960 30. Illuminate\View\Engines\CompilerEngine->get($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/5e83d1e3b85c58533d35bc99d3547462a2e542ef.blade.php', $data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:139
5.5497 6208464 31. Illuminate\View\Engines\PhpEngine->evaluatePath($__path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/41098a4489e2ff6e7b3a745d6451293772516b2e.php', $__data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/Engines/CompilerEngine.php:57
5.5498 6228040 32. include('/Users/pretzelhands/Projects/pretzelhands.com/cache/41098a4489e2ff6e7b3a745d6451293772516b2e.php') /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/Engines/PhpEngine.php:41
5.5503 6252424 33. Illuminate\View\View->render($callback = ???) /Users/pretzelhands/Projects/pretzelhands.com/cache/41098a4489e2ff6e7b3a745d6451293772516b2e.php:2
5.5503 6252424 34. Illuminate\View\View->renderContents() /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:91
5.5503 6252424 35. Illuminate\View\View->getContents() /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:122
5.5503 6252800 36. TightenCo\Jigsaw\View\BladeMarkdownEngine->get($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/60d23ed81c219cbbc8f625909fcdc93ff9081ce4.blade.md', $data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'obLevel' => 0, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:139
5.5503 6252800 37. TightenCo\Jigsaw\View\BladeMarkdownEngine->evaluateBlade($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/60d23ed81c219cbbc8f625909fcdc93ff9081ce4.blade.md', $data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'obLevel' => 0, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/View/BladeMarkdownEngine.php:23
5.5503 6252800 38. Illuminate\View\Engines\CompilerEngine->get($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/60d23ed81c219cbbc8f625909fcdc93ff9081ce4.blade.md', $data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'obLevel' => 0, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/View/BladeMarkdownEngine.php:31
5.5534 6253976 39. Illuminate\View\Engines\PhpEngine->evaluatePath($__path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/26887af9992d474fa9a02d559fac7763937ce6b6.php', $__data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'obLevel' => 0, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/Engines/CompilerEngine.php:57
5.5536 6292232 40. include('/Users/pretzelhands/Projects/pretzelhands.com/cache/26887af9992d474fa9a02d559fac7763937ce6b6.php') /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/Engines/PhpEngine.php:41
5.5542 6322976 41. Illuminate\View\AnonymousComponent->data() /Users/pretzelhands/Projects/pretzelhands.com/cache/26887af9992d474fa9a02d559fac7763937ce6b6.php:13
5.5542 6322976 42. Composer\Autoload\ClassLoader->loadClass($class = 'Illuminate\View\ComponentAttributeBag') /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/AnonymousComponent.php:51
5.5542 6323136 43. Composer\Autoload\includeFile($file = '/Users/pretzelhands/Projects/pretzelhands.com/vendor/composer/../illuminate/view/ComponentAttributeBag.php') /Users/pretzelhands/Projects/pretzelhands.com/vendor/composer/ClassLoader.php:428
5.5544 6350008 44. include('/Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/ComponentAttributeBag.php') /Users/pretzelhands/Projects/pretzelhands.com/vendor/composer/ClassLoader.php:571
Deprecated: Return type of Illuminate\View\ComponentAttributeBag::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/ComponentAttributeBag.php on line 280
Call Stack:
0.0003 412936 1. {main}() /Users/pretzelhands/Projects/pretzelhands.com/vendor/bin/jigsaw:0
0.0004 416176 2. include('/Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/jigsaw') /Users/pretzelhands/Projects/pretzelhands.com/vendor/bin/jigsaw:107
0.0620 2823128 3. Symfony\Component\Console\Application->run($input = ???, $output = ???) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/jigsaw:16
0.0751 2918440 4. Symfony\Component\Console\Application->doRun($input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'build', 'env' => 'production']; protected $interactive = TRUE; private $tokens = [0 => 'build', 1 => 'production']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(113) of type (stream) }; private $consoleSectionOutputs = [] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/symfony/console/Application.php:167
0.0755 2938088 5. Symfony\Component\Console\Application->doRunCommand($command = class TightenCo\Jigsaw\Console\BuildCommand { private ${Symfony\Component\Console\Command\Command}application = class Symfony\Component\Console\Application { private $commands = [...]; private $wantHelps = FALSE; private $runningCommand = ...; private $name = 'Jigsaw'; private $version = '1.3.38'; private $commandLoader = NULL; private $catchExceptions = TRUE; private $autoExit = TRUE; private $definition = class Symfony\Component\Console\Input\InputDefinition { ... }; private $helperSet = class Symfony\Component\Console\Helper\HelperSet { ... }; private $dispatcher = NULL; private $terminal = class Symfony\Component\Console\Terminal { ... }; private $defaultCommand = 'list'; private $singleCommand = FALSE; private $initialized = TRUE; private $signalRegistry = class Symfony\Component\Console\SignalRegistry\SignalRegistry { ... }; private $signalsToDispatchEvent = [...] }; private ${Symfony\Component\Console\Command\Command}name = 'build'; private ${Symfony\Component\Console\Command\Command}processTitle = NULL; private ${Symfony\Component\Console\Command\Command}aliases = []; private ${Symfony\Component\Console\Command\Command}definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 0; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; private ${Symfony\Component\Console\Command\Command}hidden = FALSE; private ${Symfony\Component\Console\Command\Command}help = ''; private ${Symfony\Component\Console\Command\Command}description = 'Build your site.'; private ${Symfony\Component\Console\Command\Command}fullDefinition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; private ${Symfony\Component\Console\Command\Command}ignoreValidationErrors = FALSE; private ${Symfony\Component\Console\Command\Command}code = NULL; private ${Symfony\Component\Console\Command\Command}synopsis = []; private ${Symfony\Component\Console\Command\Command}usages = []; private ${Symfony\Component\Console\Command\Command}helperSet = class Symfony\Component\Console\Helper\HelperSet { private $helpers = [...]; private $command = NULL }; private $app = class Illuminate\Container\Container { protected $resolved = [...]; protected $bindings = [...]; protected $methodBindings = [...]; protected $instances = [...]; protected $aliases = [...]; protected $abstractAliases = [...]; protected $extenders = [...]; protected $tags = [...]; protected $buildStack = [...]; protected $with = [...]; public $contextual = [...]; protected $reboundCallbacks = [...]; protected $globalResolvingCallbacks = [...]; protected $globalAfterResolvingCallbacks = [...]; protected $resolvingCallbacks = [...]; protected $afterResolvingCallbacks = [...] }; private $consoleOutput = class TightenCo\Jigsaw\Console\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(94) of type (stream); private ${Symfony\Component\Console\Output\ConsoleOutput}stderr = class Symfony\Component\Console\Output\StreamOutput { ... }; private ${Symfony\Component\Console\Output\ConsoleOutput}consoleSectionOutputs = [...]; protected $progressBars = [...]; protected $sections = class Illuminate\Support\Collection { ... } }; public $input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { ... }; protected $stream = NULL; protected $options = [...]; protected $arguments = [...]; protected $interactive = TRUE; private $tokens = [...]; private $parsed = [...] }; public $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { ... }; private $consoleSectionOutputs = [...] }; public $console = class TightenCo\Jigsaw\Console\ConsoleSession { protected $input = class Symfony\Component\Console\Input\ArgvInput { ... }; protected $output = class Symfony\Component\Console\Output\ConsoleOutput { ... }; protected $question = class Symfony\Component\Console\Helper\QuestionHelper { ... } } }, $input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'build', 'env' => 'production']; protected $interactive = TRUE; private $tokens = [0 => 'build', 1 => 'production']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(113) of type (stream) }; private $consoleSectionOutputs = [] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/symfony/console/Application.php:295
0.0755 2938088 6. Symfony\Component\Console\Command\Command->run($input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'build', 'env' => 'production']; protected $interactive = TRUE; private $tokens = [0 => 'build', 1 => 'production']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(113) of type (stream) }; private $consoleSectionOutputs = [] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/symfony/console/Application.php:978
0.0756 2939848 7. TightenCo\Jigsaw\Console\Command->execute($input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = class Symfony\Component\Console\Input\InputArgument { ... }; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'build', 'env' => 'production']; protected $interactive = TRUE; private $tokens = [0 => 'build', 1 => 'production']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(112) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(113) of type (stream) }; private $consoleSectionOutputs = [] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/symfony/console/Command/Command.php:299
0.1866 2954728 8. TightenCo\Jigsaw\Console\BuildCommand->fire() /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Console/Command.php:21
2.4188 5072192 9. TightenCo\Jigsaw\Jigsaw->build($env = 'production', $useCache = FALSE) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Console/BuildCommand.php:60
4.8672 5792944 10. TightenCo\Jigsaw\Jigsaw->buildSite($useCache = FALSE) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Jigsaw.php:46
4.8673 5792944 11. TightenCo\Jigsaw\SiteBuilder->build($source = '/Users/pretzelhands/Projects/pretzelhands.com/source', $destination = '/Users/pretzelhands/Projects/pretzelhands.com/build_production', $siteData = class TightenCo\Jigsaw\SiteData { protected $items = ['page' => class TightenCo\Jigsaw\IterableObject { ... }, 'posts' => class TightenCo\Jigsaw\PageVariable { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Jigsaw.php:76
4.8674 5792784 12. TightenCo\Jigsaw\SiteBuilder->generateFiles($source = '/Users/pretzelhands/Projects/pretzelhands.com/source', $siteData = class TightenCo\Jigsaw\SiteData { protected $items = ['page' => class TightenCo\Jigsaw\IterableObject { ... }, 'posts' => class TightenCo\Jigsaw\PageVariable { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:43
4.8702 5908840 13. Illuminate\Support\Collection->flatMap($callback = class Closure { public $static = ['siteData' => class TightenCo\Jigsaw\SiteData { ... }]; public $this = class TightenCo\Jigsaw\SiteBuilder { private $cachePath = '/Users/pretzelhands/Projects/pretzelhands.com/cache'; private $files = class TightenCo\Jigsaw\File\Filesystem { ... }; private $handlers = [...]; private $outputPathResolver = class TightenCo\Jigsaw\PathResolvers\PrettyOutputPathResolver { ... }; private $consoleOutput = class TightenCo\Jigsaw\Console\ConsoleOutput { ... }; private $useCache = FALSE }; public $parameter = ['$file' => ''] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:88
4.8702 5908840 14. Illuminate\Support\Collection->map($callback = class Closure { public $static = ['siteData' => class TightenCo\Jigsaw\SiteData { ... }]; public $this = class TightenCo\Jigsaw\SiteBuilder { private $cachePath = '/Users/pretzelhands/Projects/pretzelhands.com/cache'; private $files = class TightenCo\Jigsaw\File\Filesystem { ... }; private $handlers = [...]; private $outputPathResolver = class TightenCo\Jigsaw\PathResolvers\PrettyOutputPathResolver { ... }; private $consoleOutput = class TightenCo\Jigsaw\Console\ConsoleOutput { ... }; private $useCache = FALSE }; public $parameter = ['$file' => ''] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Traits/EnumeratesValues.php:311
4.8702 5911456 15. array_map($callback = class Closure { public $static = ['siteData' => class TightenCo\Jigsaw\SiteData { ... }]; public $this = class TightenCo\Jigsaw\SiteBuilder { private $cachePath = '/Users/pretzelhands/Projects/pretzelhands.com/cache'; private $files = class TightenCo\Jigsaw\File\Filesystem { ... }; private $handlers = [...]; private $outputPathResolver = class TightenCo\Jigsaw\PathResolvers\PrettyOutputPathResolver { ... }; private $consoleOutput = class TightenCo\Jigsaw\Console\ConsoleOutput { ... }; private $useCache = FALSE }; public $parameter = ['$file' => ''] }, $array = [0 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = class TightenCo\Jigsaw\PageVariable { ... } }, 1 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 2 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 3 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 4 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 5 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 6 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 7 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 8 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 9 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 10 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 11 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 12 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 13 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 14 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 15 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 16 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 17 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 18 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 19 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 20 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 21 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 22 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 23 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 24 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 25 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 26 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 27 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 28 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 29 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 30 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 31 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 32 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 33 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 34 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 35 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 36 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 37 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 38 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 39 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 40 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 41 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 42 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 43 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 44 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 45 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 46 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 47 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 48 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 49 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 50 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 51 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 52 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 53 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 54 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 55 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 56 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 57 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 58 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 59 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 60 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 61 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 62 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 63 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 64 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }, 65 => class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { ... }; protected $extraBladeExtensions = [...]; protected $pageData = NULL }], $arrays = [0 => 0, 1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10, 11 => 11, 12 => 12, 13 => 13, 14 => 14, 15 => 15, 16 => 16, 17 => 17, 18 => 18, 19 => 19, 20 => 20, 21 => 21, 22 => 22, 23 => 23, 24 => 24, 25 => 25, 26 => 26, 27 => 27, 28 => 28, 29 => 29, 30 => 30, 31 => 31, 32 => 32, 33 => 33, 34 => 34, 35 => 35, 36 => 36, 37 => 37, 38 => 38, 39 => 39, 40 => 40, 41 => 41, 42 => 42, 43 => 43, 44 => 44, 45 => 45, 46 => 46, 47 => 47, 48 => 48, 49 => 49, 50 => 50, 51 => 51, 52 => 52, 53 => 53, 54 => 54, 55 => 55, 56 => 56, 57 => 57, 58 => 58, 59 => 59, 60 => 60, 61 => 61, 62 => 62, 63 => 63, 64 => 64, 65 => 65]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Collection.php:638
5.5483 6205968 16. TightenCo\Jigsaw\SiteBuilder->TightenCo\Jigsaw{closure:/Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:88-92}($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, 3) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Collection.php:638
5.5483 6205968 17. TightenCo\Jigsaw\SiteBuilder->handle($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $siteData = class TightenCo\Jigsaw\SiteData { protected $items = ['page' => class TightenCo\Jigsaw\IterableObject { ... }, 'posts' => class TightenCo\Jigsaw\PageVariable { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:91
5.5484 6206088 18. TightenCo\Jigsaw\Handlers\CollectionItemHandler->handle($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/SiteBuilder.php:124
5.5485 6205232 19. TightenCo\Jigsaw\Handlers\MarkdownHandler->handleCollectionItem($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/CollectionItemHandler.php:55
5.5485 6205232 20. TightenCo\Jigsaw\Handlers\MarkdownHandler->buildOutput($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:31
5.5485 6206288 21. Illuminate\Support\Collection->map($callback = class Closure { public $static = ['file' => class TightenCo\Jigsaw\File\InputFile { ... }, 'pageData' => class TightenCo\Jigsaw\PageData { ... }]; public $this = class TightenCo\Jigsaw\Handlers\MarkdownHandler { private $temporaryFilesystem = class TightenCo\Jigsaw\File\TemporaryFilesystem { ... }; private $parser = class TightenCo\Jigsaw\Parsers\FrontMatterParser { ... }; private $view = class TightenCo\Jigsaw\View\ViewRenderer { ... } }; public $parameter = ['$extends' => '', '$templateToExtend' => ''] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:49
5.5485 6206504 22. array_map($callback = class Closure { public $static = ['file' => class TightenCo\Jigsaw\File\InputFile { ... }, 'pageData' => class TightenCo\Jigsaw\PageData { ... }]; public $this = class TightenCo\Jigsaw\Handlers\MarkdownHandler { private $temporaryFilesystem = class TightenCo\Jigsaw\File\TemporaryFilesystem { ... }; private $parser = class TightenCo\Jigsaw\Parsers\FrontMatterParser { ... }; private $view = class TightenCo\Jigsaw\View\ViewRenderer { ... } }; public $parameter = ['$extends' => '', '$templateToExtend' => ''] }, $array = [0 => '_layouts.post'], $arrays = [0 => 0]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Collection.php:638
5.5485 6206704 23. TightenCo\Jigsaw\Handlers\MarkdownHandler->TightenCo\Jigsaw\Handlers{closure:/Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:49-64}($extends = '_layouts.post', $templateToExtend = 0) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/support/Collection.php:638
5.5485 6207008 24. TightenCo\Jigsaw\Handlers\MarkdownHandler->render($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }, $extends = '_layouts.post') /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:61
5.5485 6207168 25. TightenCo\Jigsaw\Handlers\MarkdownHandler->renderBladeMarkdownFile($file = class TightenCo\Jigsaw\File\InputFile { protected $file = class Symfony\Component\Finder\SplFileInfo { private $relativePath = '_posts'; private $relativePathname = '_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}pathName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md'; private ${SplFileInfo}fileName = '2021-01-26-build-your-own-psr-4-autoloader.blade.md' }; protected $extraBladeExtensions = [0 => 'js', 1 => 'json', 2 => 'xml', 3 => 'yaml', 4 => 'yml', 5 => 'rss', 6 => 'atom', 7 => 'txt', 8 => 'text', 9 => 'html']; protected $pageData = NULL }, $uniqueFileName = '/Users/pretzelhands/Projects/pretzelhands.com/source/_posts/2021-01-26-build-your-own-psr-4-autoloader.blade.md_layouts.post', $pageData = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }, $extends = '_layouts.post') /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:74
5.5490 6207424 26. TightenCo\Jigsaw\View\ViewRenderer->render($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/5e83d1e3b85c58533d35bc99d3547462a2e542ef.blade.php', $data = class TightenCo\Jigsaw\PageData { protected $items = ['posts' => class TightenCo\Jigsaw\PageVariable { ... }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { ... }] }) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/Handlers/MarkdownHandler.php:100
5.5491 6207584 27. Illuminate\View\View->render($callback = ???) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/View/ViewRenderer.php:42
5.5491 6207584 28. Illuminate\View\View->renderContents() /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:91
5.5491 6207584 29. Illuminate\View\View->getContents() /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:122
5.5491 6207960 30. Illuminate\View\Engines\CompilerEngine->get($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/5e83d1e3b85c58533d35bc99d3547462a2e542ef.blade.php', $data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:139
5.5497 6208464 31. Illuminate\View\Engines\PhpEngine->evaluatePath($__path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/41098a4489e2ff6e7b3a745d6451293772516b2e.php', $__data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/Engines/CompilerEngine.php:57
5.5498 6228040 32. include('/Users/pretzelhands/Projects/pretzelhands.com/cache/41098a4489e2ff6e7b3a745d6451293772516b2e.php') /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/Engines/PhpEngine.php:41
5.5503 6252424 33. Illuminate\View\View->render($callback = ???) /Users/pretzelhands/Projects/pretzelhands.com/cache/41098a4489e2ff6e7b3a745d6451293772516b2e.php:2
5.5503 6252424 34. Illuminate\View\View->renderContents() /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:91
5.5503 6252424 35. Illuminate\View\View->getContents() /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:122
5.5503 6252800 36. TightenCo\Jigsaw\View\BladeMarkdownEngine->get($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/60d23ed81c219cbbc8f625909fcdc93ff9081ce4.blade.md', $data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'obLevel' => 0, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/View.php:139
5.5503 6252800 37. TightenCo\Jigsaw\View\BladeMarkdownEngine->evaluateBlade($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/60d23ed81c219cbbc8f625909fcdc93ff9081ce4.blade.md', $data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'obLevel' => 0, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/View/BladeMarkdownEngine.php:23
5.5503 6252800 38. Illuminate\View\Engines\CompilerEngine->get($path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/60d23ed81c219cbbc8f625909fcdc93ff9081ce4.blade.md', $data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'obLevel' => 0, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/tightenco/jigsaw/src/View/BladeMarkdownEngine.php:31
5.5534 6253976 39. Illuminate\View\Engines\PhpEngine->evaluatePath($__path = '/Users/pretzelhands/Projects/pretzelhands.com/cache/26887af9992d474fa9a02d559fac7763937ce6b6.php', $__data = ['__env' => class Illuminate\View\Factory { protected $engines = class Illuminate\View\Engines\EngineResolver { ... }; protected $finder = class Illuminate\View\FileViewFinder { ... }; protected $events = class TightenCo\Jigsaw\Events\FakeDispatcher { ... }; protected $container = class Illuminate\Container\Container { ... }; protected $shared = [...]; protected $extensions = [...]; protected $composers = [...]; protected $renderCount = 2; protected $renderedOnce = [...]; protected $componentStack = [...]; protected $componentData = [...]; protected $slots = [...]; protected $slotStack = [...]; protected $sections = [...]; protected $sectionStack = [...]; protected $loopsStack = [...]; protected $pushes = [...]; protected $prepends = [...]; protected $pushStack = [...]; protected $translationReplacements = [...] }, 'obLevel' => 0, 'posts' => class TightenCo\Jigsaw\PageVariable { protected $items = [...] }, 'page' => class TightenCo\Jigsaw\Collection\CollectionItem { protected $items = [...]; public $collection = class TightenCo\Jigsaw\Collection\Collection { ... }; public $_content = class Closure { ... } }]) /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/Engines/CompilerEngine.php:57
5.5536 6292232 40. include('/Users/pretzelhands/Projects/pretzelhands.com/cache/26887af9992d474fa9a02d559fac7763937ce6b6.php') /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/Engines/PhpEngine.php:41
5.5542 6322976 41. Illuminate\View\AnonymousComponent->data() /Users/pretzelhands/Projects/pretzelhands.com/cache/26887af9992d474fa9a02d559fac7763937ce6b6.php:13
5.5542 6322976 42. Composer\Autoload\ClassLoader->loadClass($class = 'Illuminate\View\ComponentAttributeBag') /Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/AnonymousComponent.php:51
5.5542 6323136 43. Composer\Autoload\includeFile($file = '/Users/pretzelhands/Projects/pretzelhands.com/vendor/composer/../illuminate/view/ComponentAttributeBag.php') /Users/pretzelhands/Projects/pretzelhands.com/vendor/composer/ClassLoader.php:428
5.5544 6350008 44. include('/Users/pretzelhands/Projects/pretzelhands.com/vendor/illuminate/view/ComponentAttributeBag.php') /Users/pretzelhands/Projects/pretzelhands.com/vendor/composer/ClassLoader.php:571
You can find the repository for this project on GitHub
If you're anything like me, you've probably wondered before: "What kind of magic
makes Composer go?" - You look at the source code of vendor/autoload.php
and
see it links to yet another autoloader that's called autoload_real.php
Then
there's a bunch of hashes and it's confusing and eventually you just accept that
Composer is magic and you aren't worthy of its secrets.
Today, let's look at how you can build your own Composer. At least the autoloading
part. We won't talk about the seven million other features that Composer provides to
us aside from that.
Setting up the project
This time, all you need to bring is any kind of PHP installation. Technically
it needs to be at least PHP 5.3, but I very much hope that you aren't running
anything that old.
As always, we'll start with what we want our project structure to look like
psr-4/
├─ autoloader.php
├─ app.php
├─ src/
│ ├─ Pretzel/
│ │ ├─ RandomClass.php
autoloader.php
is going to be what it says. This file will be roughly equivalent
to vendor/autoload.php
when using Composer.
app.php
is going to be our test file where we include the autoloader and try
to use our classes.
src/
will contain our application-specific code. The folder doesn't have to
be Pretzel. You pick whatever makes you happy.
Our stated goal is to load every class that is located in src/Pretzel
. Each subdirectory
constitutes a new namespace. So any file in src/Pretzel/Factory
has a namespace of Pretzel\Factory
.
The magic spice: spl_autoload_register
All we really need to create an autoloader is that function: spl_autoload_register
.
You can read more details about it in the PHP documentation.
You call it like this
<?php
spl_autoload_register(function(string $class) {
// Perform unknowable magic here
});
All you need to pass in is a callable
of some kind that receives one argument: a string with a class name. You can register
multiple of these callbacks too. This is useful if you want to have a few logically
different ways to load classes.
After your function is registered, PHP will call it every time a class is used for
the first time. This is usually either when you call new
on it, or when you use
a static function on it. Let's see that in action.
Interacting with spl_autoload_register
I'll set up my autoloader.php
like this:
// autoloader.php
<?php
spl_autoload_register(function(string $class) {
die($class)
}
For now we'll just print the class name that was desired and exit.
We also need a class to load, so let's build a quick PretzelFactory
. It
returns a pretzel emoji from a static method. It's very fancy.
// src/Pretzel/Factory/PretzelFactory
<?php
namespace Pretzel\Factory;
class PretzelFactory {
public static function getPretzel(): string
{
return '🥨';
}
}
We need to use that class somewhere. This is what our app.php
file is for.
We'll have to include our autoloader, pull the class in and then call the static
method. Something like this.
// app.php
<?php
require __DIR__ . '/autoloader.php';
use Pretzel\Factory\PretzelFactory;
echo PretzelFactory::getPretzel();
When we run our app.php
file, this is the result.
$ php app.php
Pretzel\Factory\PretzelFactory
So we get the fully-qualified class name (FQCN
) passed to us. Now PSR-4
states that a FQCN name consists of:
- A namespace prefix (e.g.
Pretzel
) that corresponds to a base directory (e.g. src/Pretzel
)
- Zero or more sub-namespaces (e.g.
Factory
) that correspond to a directory (e.g. src/Pretzel/Factory
)
- One class name corresponding to a PHP file with that same name (e.g.
PretzelFactory.php
)
Some of you might have realized by now, that our FQCN is essentially a direct path to the file
we need to load. How convenient!
Loading the appropriate files
To load our file, first we need to turn our FQCN into an actual path. This can
be done by replacing every backslash with a forward slash and appending .php
at the
end. With that, we can already autoload files from a hard-coded base path!
Let's try it out!
// autoloader.php
<?php
function fqcnToPath(string $fqcn) {
return str_replace('\\', '/', $fqcn) . '.php';
}
spl_autoload_register(function (string $class) {
$path = fqcnToPath($class);
require __DIR__ . '/src/' . $path;
});
After adding this, we can just run our app.php
script again
$ php app.php
🥨
Great success! This shows you what autoloading boils down to: A fancy way to
require a PHP file just in time when it's needed. But if we want to be (reasonably)
spec-compliant, we still have work to do.
Right now the path we load from is hard-coded to be src/
but according to
PSR-4, every package is free to define its own namespace prefix that maps to
a path. This is essentially what you do every time you set up autoloading in
Composer
{
"autoload": {
"psr-4": {
"Pretzel\\": "src/Pretzel"
}
}
}
So let's try to parse this JSON snippet and use it to load our classes.
I'll call it conductor.json
, because that's what the logo of Composer
depicts, and we're basically a cheap knock-off. 🤪
Autoloading according to configuration
The first thing we have to do is to grab our JSON file and turn it into
something we can actually work with (i.e. an associative array). Luckily,
PHP has native functions for both of those things.
// autoloader.php
<?php
$configuration = json_decode(
file_get_contents('conductor.json'),
true
);
$namespaces = $configuration['autoload']['psr-4'];
// .. SNIP ..
Now, the user is free to specify as many namespaces and base directories
as she wants, so we need to check if the prefixed/first namespace is available
in our psr-4
associative array. We could use a foreach
loop, but we can
also make it a bit more efficient using a function called strtok()
.
// autoloader.php
<?php
// .. SNIP ..
spl_autoload_register(function (string $class) use ($namespaces) {
$prefix = strtok($class, '\\') . '\\';
// We don't handle that namespace.
// Return and hope some other autoloader handles it.
if (!array_key_exists($prefix, $namespaces)) return;
$baseDirectory = $namespaces[$prefix];
});
What strtok
does is tokenize the string according to a separator. If we pass
in the backslash, it will return us everything up to the first backslash, excluding
that. To correctly match our configuration, we just add it again ourselves.
For the performance nerds among you this makes sure that we find the proper
base directory in O(1)
time.
Then we check if this namespace prefix maps to a path in our configuration.
If it does, great! If it doesn't, we just return from the function and hope that
someone else handles this case. We can't do anything else with it.
The next step is to remove the prefixed namespace from our class name. This is
because we know exactly what directory the prefix maps to, and we want to start
building our final path from that. We can do this in our fqcnToPath
function.
// autoloader.php
<?php
// .. SNIP ..
function fqcnToPath(string $fqcn, string $prefix) {
$relativeClass = ltrim($fqcn, $prefix);
return str_replace('\\', '/', $relativeClass) . '.php';
}
spl_autoload_register(function (string $class) use ($namespaces) {
$prefix = strtok($class, '\\') . '\\';
// We don't handle that namespace.
// Return and hope some other autoloader handles it.
if (!array_key_exists($prefix, $namespaces)) return;
$baseDirectory = $namespaces[$prefix];
$path = fqcnToPath($class, $prefix);
});
Once again PHP has our back! We use ltrim
to remove the main namespace from
the beginning of our FQCN. This gives us the "relative" class, in the same sense
as having a relative path. The rest of the function stays the same.
At this point we have a base directory and a relative path going out from that
base directory. So the final piece that's missing is trying to require the
appropriate file!
// autoloader.php
<?php
// .. SNIP ..
spl_autoload_register(function (string $class) use ($namespaces) {
$prefix = strtok($class, '\\') . '\\';
// We don't handle that namespace.
// Return and hope some other autoloader handles it.
if (!array_key_exists($prefix, $namespaces)) return;
$baseDirectory = $namespaces[$prefix];
$path = fqcnToPath($class, $prefix);
require $baseDirectory . '/' . $path;
});
At this point we can run our app.php
again and see if it works as advertised.
$ php app.php
🥨
Great! So now we can add PSR-4 autoloading configuration to our JSON file just as
if it were Composer. Of course, one should probably add some more input validation
to this code. Users could forget to specify a \
in their namespace. Or they could
accidentally add a /
in the base directory. But I'll leave that part to you, dear
reader.
Closing thoughts
While this is a simplified example of what Composer does internally, it still
shows you the general principles of PSR-4 autoloading and what goes into it.
Once you break it down, it's really not as complex as it seems!
The main reason I even got the idea was due to a side project I'm silently
hacking away on. I needed a simple way to load in PHP classes that define plugins,
and well, here we are.
As always, the entire code for this blog post is available on GitHub.