1. Go to this page and download the library: Download pre/phpx 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/ */
pre / phpx example snippets
public function render($name, $props = null)
{
$props = $this->propsFrom($props);
if ($function = globalFunctionMatching($name)) {
return call_user_func($function, $props);
}
if ($class = globalClassMatching($name)) {
return (new $class($props))->render();
}
// render HTML from a list of allowed elements...
return $this->format("...");
}
namespace Example\Application;
// don't forget to define or import render
// everywhere you use HTML-in-PHP syntax
use function Pre\Phpx\Html\render;
function MyForm($props) {
return (
<form>
{$props->showLabel ? <label htmlFor={"email"}>Email</label> : null}
<input type={"text"} name={"email"} id={"email"} />
</form>
);
}
// ...later
print render(<Example.Application.MyForm />);
namespace Example\Application;
use function Pre\Phpx\classMatching;
use function Pre\Phpx\functionMatching;
use function Pre\Phpx\Html\render as renderHtml;
use function Pre\Phpx\Html\propsFrom;
define("NAMESPACES", [
// remove this if you only have
// namespaced classes and functions
"global",
// classes and functions will
// be loaded from this namespace
"Example\\Application",
]);
function render($name, $props = null)
{
$props = propsFrom($props);
if ($function = functionMatching(NAMESPACES, $name)) {
return call_user_func($function, $props);
}
if ($class = classMatching(NAMESPACES, $name)) {
return (new $class($props))->render();
}
return renderHtml($name, $props);
}
// ...later
print render(<MyForm />);
function MyForm($props) {
// render things...
}
// ...or
class MyForm
{
public function __construct($props)
{
// ...store and manipulate the props
}
public function render()
{
// render things...
}
}