1. Go to this page and download the library: Download nyholm/sunflower library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
nyholm / sunflower example snippets
// src/Kernel.php
namespace App;
use Nyholm\SunflowerKernel;
class Kernel extends SunflowerKernel
{
/**
* Optionally override the configureContainer()
*/
protected function configureContainer(ContainerConfigurator $container): void
{
$container->import('../config/{packages}/*.yaml');
$container->import('../config/{packages}/'.$this->environment.'/*.yaml');
$container->import('../config/{packages}/'.$this->environment.'/*.php');
if (\is_file(\dirname(__DIR__).'/config/services.yaml')) {
$container->import('../config/services.yaml');
$container->import('../config/{services}_'.$this->environment.'.yaml');
} else {
$container->import('../config/{services}.php');
}
}
}
use App\Kernel;
use App\Service\MyService;
bool) $context['APP_DEBUG']);
$kernel->getContainer()->get(MyService::class)->run();
// public/index.php
use Nyholm\Psr7;
$kernel = new \App\Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
$container = $kernel->getContainer();
// This is an example router
$urlPath = $context['REQUEST_URI'];
switch ($urlPath) {
case '/':
case '':
// This is an RequestHandlerInterface
return $container->get(\App\Controller\Startpage::class);
case '/foobar':
return $container->get(\App\Controller\Foobar::class);
default:
return new Psr7\Response(404, [], 'The route does not exist');
}
};
// src/Kernel.php
namespace App;
use Nyholm\SunflowerKernel;
class Kernel extends SunflowerKernel
{
public function isLambda(): bool
{
return false !== \getenv('LAMBDA_TASK_ROOT');
}
public function getCacheDir(): string
{
if ($this->isLambda()) {
return '/tmp/cache/'.$this->environment;
}
return parent::getCacheDir();
}
public function getLogDir(): string
{
if ($this->isLambda()) {
return '/tmp/log/';
}
return parent::getLogDir();
}
public function getProjectDir(): string
{
return \dirname(__DIR__);
}
}
// bin/container.php
use App\Kernel;
$kernel = new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
return $kernel->getContainer();
};
// bin/console
#!/usr/bin/env php
use App\Kernel;
use Symfony\Component\Console\Application;
P_DEBUG']);
$container = $kernel->getContainer();
$app = new Application();
// Register all your commands here
$app->add($container->get(\App\Command\HelloCommand::class));
return $app;
};
declare(strict_types=1);
namespace App\Command;
use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
#[AsCommand(name: 'app:debug:hello')]
class HelloCommand extends Command
{
protected function configure()
{
$this->setDescription('Test print hello.');
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$output->writeln('Hello');
return Command::SUCCESS;
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.