1. Go to this page and download the library: Download conperience/lucille 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/ */
conperience / lucille example snippets
namespace Website;
use Lucille\Factory;
ng the core features
$factory = new Factory();
// register stream wrapper
$factory->registerStream('xhtml', __DIR__.'/parts');
$factory->registerStream('xsl', __DIR__.'/xsl');
// create the GET routing chain add a GET router
$chainGet = $factory->createGetRoutingChain();
$chainGet->addRouter(new IndexRouter());
// create the POST routing chain and add a POST router
$chainPost = $factory->createPostRoutingChain();
$chainPost->addRouter(new FormVerifyRouter());
// create an instance of the default request processor
$processor = $factory->createRequestProcessor();
// enable verbose error output for debugging purposes
//$processor->enableVerboseErrors();
// add routing chains to the processor
$processor->addRoutingChain($chainGet);
$processor->addRoutingChain($chainPost);
// create request (based on the request method, headers and parameters)
$request = $factory->createRequestFactory()->createRequest();
// build a response by running the processor with the created request
$response = $processor->run($request);
// dump/send the response to the client
$response->send();
namespace Website;
use Lucille\Query;
use Lucille\Request\GetRequest;
use Lucille\Request\Uri;
use Lucille\Routing\GetRouter;
class IndexRouter extends GetRouter {
public function route(GetRequest $request): Query {
if (!$request->getUri()->isEqual(new Uri('/'))) {
return $this->getNext()->route($request);
}
return new IndexQuery();
}
}
namespace Website;
use Lucille\Components\Xml\XhtmlContent;
use Lucille\Filename;
use Lucille\Query;
use Lucille\Result\Result;
class IndexQuery implements Query {
public function execute(): Result {
// load main page
$page = new XhtmlContent(new Filename('xhtml://design.xhtml'));
// load a part and append it to the html <body> tag (which has the id attribute 'content')
$part1 = new XhtmlContent(new Filename('xhtml://part1.xhtml'));
$page->append('content', $part1);
return $page;
}
}
// request URI equals another URI
if ($request->getUri()->isEqual( new Uri('/contact') ) {
...
}
// check if request URI begins with a specified value
// - example request uri: /articles/my-first-article/view.xml
if ($request->getUri()->beginsWith( new Uri('/articles/') ) {
...
}
// check if request URI matches a specified regular expression
// - example request uri: /articles/2020/demo-article/
if ($request->getUri()->matchesRegEx( new UriRegEx('#^/articles/[0-9]{4}/.*#') )) {
...
}
// check for a specific URI segment
// - example request uri: /articles/2020/demo-article/
$request->getUri()->getPart(0); // returns 'articles'
$request->getUri()->getPart(1); // returns '2020'
$request->getUri()->getPart(2); // returns 'demo-article'
// cast to string
echo $request->getParam('id')->asString();
// cast to int
echo $request->getParam('id')->asInt();
// cast to float
echo $request->getParam('id')->asFloat();
// example request uri: /article?id=123&limit=20
$collection = $request->getParameterCollection();
if (count($collection) > 0) {
foreach ($collection as $param) {
echo $param->getName()->asString(); // parameter name
echo $param->asString(); // parameter value
}
}
// example request uri: /article?list[]=foo&list[]=bar
$collection = $request->getParameterCollection('list');
if (count($collection) > 0) {
foreach ($collection as $value) {
echo $value->asString();
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.