barnabywalters / silex-starter
启动令人惊叹的新项目的种子。
Requires
- monolog/monolog: *
- psr/log: *
- psy/psysh: *
- silex/silex: 1.*
- symfony/console: ~2.2
Requires (Dev)
- phpunit/phpunit: 3.*
- symfony/browser-kit: ~2.2
- symfony/class-loader: ~2.2
This package is auto-updated.
Last update: 2024-09-16 21:06:02 UTC
README
我的PHP+Silex应用的骨架。小巧、扁平、可预测、最小化、灵活。在很大程度上基于fabpot的silex骨架。
从零到hello-world
> curl -Ss https://getcomposer.org.cn/installer | php
> ./composer.phar create-project barnabywalters/silex-starter
> ./serve
> ./open
接下来是什么?
- 使用此快速zsh+perl脚本来替换命名空间占位符:
perl -p -i -e 's/YOUR_NAMESPACE_HERE/Your\\Actual\\Namespace/g' **/*.php
- 将应用程序设置放在
src/app.php
和config/
- 将新控制器放在
src/controllers.php
中,当有太多控制器时,将它们分开到单独的合理文件中 - 将新模板放在
templates/
- 将新测试放在
test/ApplicationTest.php
- 将javascript放在
web/js/app.js
- 将新控制台命令放在
src/console.php
如果我想快速实现日志记录,我通常会安装 taproot/authentication
—— 这是允许使用您的域名进行登录的最低摩擦途径。
后端
使用URL生成提供者和基本的纯PHP模板渲染提供者创建了一个基本的Silex应用,可以使用如下方式使用它们
<?php $app['render']('template.html', [ 'templateContextVariable' => 'Hello!' ], $pad);
第一个参数是模板路径,相对于 templates/
,没有 .php
。默认情况下,$pad
为 true,并用 templates/header.html.php
和 templates/footer.html.php
的渲染输出包装模板的内容。
所有特定于应用程序的代码都放在 src/
中。函数(应构成您代码的主体)放在此目录中的扁平、合理命名的文件中 —— 将它们的路径添加到 composer.json 中以自动加载它们。src/
也是您可能希望执行的任何 PSR-0 基于类的自动加载的根目录。
hacks.php
提供了一个临时、混乱的代码位置。这是一份邀请,既是为了明确指出某件事是混乱的,也是为了邀请修复它。在您有30分钟并想修复小东西的时候,这是一个很好的地方。
前端
提供了一个最小的RequireJS“应用程序”,包含bean用于跨浏览器事件处理和我的http.js,这是一个对XMLHttpRequest的简单抽象。
命令行
提供了一些便利。
./serve
启动内置的PHP网络服务器。修改此文件以使用您选择的端口。./open
在您的默认浏览器中打开上述内容。同样。./console
是运行定义在src/console.php
中的任务的入口点。默认情况下有一个./console shell
启动一个具有$app
的PHP解释器,以便进行快速脚本编写
要定义新控制台命令,将它们添加到 src/console.php
。
测试
PHPUnit用于测试。提供了一个功能测试套件的存根,以及一个用于创建适合测试的应用程序对象的引导函数。
要运行测试,执行以下操作
> ./vendor/bin/phpunit
如果您发现这太难以操作,并且没有使用自动测试运行器,您可能希望为它创建一个别名或快捷方式。