buttress/phpx
Composer 安装命令:
composer require buttress/phpx
包简介
PHP DOM but intuitive
README 文档
README
<PHPX/>
An intuitive DOMDocument wrapper that makes it easy to write safe valid HTML in plain PHP.
$x = new Buttress\Phpx\Phpx(); $github = 'https://github.com/buttress/phpx'; echo $x->render( $x->main(class: 'content', c: [ $x->h1(id: 'title', c: 'Hello World!'), $x->p(c: [ 'Brought to you by ', $x->a(href: $github, c: 'PHPX') ]), ]) );
becomes
<main class="content"> <h1 id="title">Hello World!</h1> <p> Brought to you by <a href="https://github.com/buttress/phpx">PHPX</a> </p> </main>
Installation
To install PHPX, use composer:
composer require phpx/phpx
Usage
/** Basic Usage */ // <span>foo</span> $x->render($x->span(c: 'Foo')); // <a href='#'>foo</span> $x->render($x->a(href: '#', c: 'Foo')); // <div><span>Hello</span><strong>world</strong></div> $x->render($x->div(c: [ $x->span(c: 'Hello'), $x->strong(c: 'world'), ])); // Context specific XSS protection $xss = '\'"<>"'; // <span title="'"<>"">'"<>"</span> $x->render($x->span(title: $xss, c: $xss));
Advanced Usage
/** * $x->if : Conditional */ // Renders either: <div>There are <strong>100</strong> items</div> // or <div>No items found</div> $total = 100; $result = $x->render( ...$x->if( $total > 0, // if fn() => $x->div(c: ['There are ', $x->strong(c: (string) $total), ' items']), // else fn() => $x->div(c: 'No items found.') ) ); /** * $x->foreach : Loop over a set of items */ $features = ['safe', 'valid', 'simple']; // <li>safe</li><li>valid</li><li>simple</li> $result = $x->render( ...$x->foreach($features, fn(string $feature) => $x->li(c: ucfirst($feature))) ); /** * $x->with : Capture a variable */ // Only run `getProduct()` when `$test` is true $result = $x->render( $x->div(c: [ ...$x->if($test, fn() => $x->with(getProduct(), fn(Product $product) => [ $x->h3(c: $product->title), $x->p(c: $product->description) ])) ]) ); /** * Mix HTML and PHPX */ ?> <div class='container'> <?= $x->render($x->h1(c: getProduct()->title)) ?> <span>The best product around</span> </div>
Related Projects
- PHPX Compile An experimental compiler for PHPX. Significantly reduces function calls.
- PHPX Templates An experimental template engine built around PHPX and PHPX Compile.
Contributing
Contributions to PHPX are always welcome! Feel free to fork the repository and submit a pull request.
License
PHPX is released under the MIT License.
Githooks
To add our githooks and run tests before commit:
git config --local core.hooksPath .githooks
Support
If you encounter any problems or have any questions, please open an issue on GitHub.
Thanks for checking out PHPX ❤️
buttress/phpx 适用场景与选型建议
buttress/phpx 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 26 次下载、GitHub Stars 达 24, 最近一次更新时间为 2024 年 03 月 08 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 buttress/phpx 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 buttress/phpx 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 26
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 24
- 点击次数: 9
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-03-08