Download the PHP package muzk6/sparrow without Composer

On this page you can find all versions of the php package muzk6/sparrow. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package sparrow

Sparrow Framework

PHP框架 Sparrow

安装

创建项目

composer create-project --prefer-dist muzk6/sparrow your-projectname

请确保项目目录 data权限

使用 docker-compose 部署开发环境

不建议生产环境使用 docker 部署

访问链接

所有后台访问都有 IP, Cookie 白名单,配置位于 config/.../whitelist.php

目录结构

Dir Desc
app 业务逻辑
app/Providers 容器服务提供层
app/Routes 路由层(控制器层)
app/Services 业务服务层
cli 命令行脚本
config 配置文件,通用配置放在当前目录下
config/dev dev环境的配置
core 框架文件
data 缓存、日志数据目录,需要写权限
lang 国际化多语言
private 私有 Web 入口目录,配置的域名不应该被外网访问
private/admin Admin 后台入口
private/rpc RPC 入口目录
public 公有 Web 入口目录
tests 单元测试
vendor Composer库
views 视图文件
workers worker 文件

常用常量

Name Desc
TIME $_SERVER['REQUEST_TIME'], 脚本启动时间,不能在 worker 里使用,否则不会变化
IS_POST 是否为 POST 请求
IS_GET 是否为 GET 请求
IS_DEV 是否为开发环境
APP_LANG 当前语言 eg. zh_CN
APP_ENV 服务器环境 eg. dev
TEST_ENV 是否为单元测试的环境
PATH_APP 项目业务目录
PATH_ROUTES 路由目录
PATH_PUBLIC 网站入口路径
PATH_DATA 数据目录,需要有写权限
PATH_LOG 日志目录

测试文件

路由

注册路由

用例

输出如下:

自定义404

在调用 app(Router::class)->dispatch() 之前像下面例子设置 404 回调:

请求参数

获取、过滤、表单验证、类型强转 请求参数 $_GET,$_POST 支持 payload

不验证,一个一个获取

不验证,统一获取

部分验证,一个一个获取

部分验证,统一获取

串联短路方式验证(默认)

遇到验证不通过时,立即终止后面的验证

串联结果

并联验证

即使前面的验证不通过,也会继续验证后面的字段

并联结果

input() 参数说明

'get.foo:i' 中的类型转换i为整型,其它类型为:

Name Type
i int
s string
b bool
a array
f float
d double

PDO 数据库

可以配置 MySQL, SQLite 等 PDO 支持的数据库

如果想同时使用 SQLite 等数据库, 参考复制 mysql.php 为新的数据库配置文件,按需配置 dsn,再注册容器即可(参考 \Core\ServiceProviderPDOEngine)

helpers 其它辅助函数用例

app() 容器

config() 配置文件

添加新环境配置: 复制目录 config/dev 及其配置文件,在 config/env.php 中添加多一个新环境分支

trans() 多语言文本

logfile() 文件日志

logfile('test', ['foo', 'bar'], 'login') 把内容写到data/log/login_20190328.log

各日志文件说明:

url() 带协议和域名的完整URL

panic() 直接抛出业务异常对象

AppException 异常属于业务逻辑,能够作为提示通过接口返回给用户看,而其它异常则不会(安全考虑)

inject() 支持自动依赖注入的函数调用

通过回调函数的形参里声明类型,就能会自动注入

request_flash(), old() 记住并使用上次的请求参数

csrf_*() CSRF, XSRF

请求时带上 Token, 使用以下任意一种方法

flash_*() 闪存,一性次缓存

api_format(), api_json() 格式化为接口输出的内容结构

成功提示

路由里等价写法如下:

错误提示

路由里等价写法如下:

assign(), view() 模板与变量

back(), redirect() 网页跳转

缓存 redis

依赖

pecl install redis

用例

app(\Core\AppRedis::class)->setex('key', 3600, 'value') 与原生一致

登录

RPC 远程过程调用

消息队列

worker 遇到信号 SIGTERM, SIGHUP, SIGINT, SIGQUIT 会平滑结束进程。 如果要强行结束可使用信号 SIGKILL, 命令为 kill -s KILL <PID>

依赖

composer require php-amqplib/php-amqplib

配置

config/.../rabbitmq.php

用例

建议规则:

邮件 email

依赖

composer require swiftmailer/swiftmailer

配置

config/.../email.php

用例

参考类文档 \Core\Mail

OPS 运维与开发

用于运维监控与开发调试,包括 日志、调试、性能分析

XDebug

断点调试

配置文件位置 docker/php-fpm/php_ini/xdebug.ini

XDebug Trace

跟踪调试日志

以下任意方式可开启跟踪, 日志可在运维后台 XDebug - 跟踪文件 查看, 或者直接在项目目录 data/trace/ 里查看

注意:请确保对 data/ 目录有写权限

跟踪 fpm

注意:URL, Cookie 方式的前提必须先设置 config/.../whitelist.php 白名单 IP 或 白名单 Cookie

跟踪 cli

php demo.php --trace 在任何脚本命令后面加上参数 --trace 即可

XHProf

依赖

使用

注意:请确保对 data/ 目录有写权限

维护模式

开启维护模式,关闭网站访问入口


All versions of sparrow with dependencies

PHP Build Version
Package Version
Requires php Version ^7.1
ext-json Version *
pimple/pimple Version ^3.2
duncan3dc/blade Version ^4.5
php-amqplib/php-amqplib Version ^2.9
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package muzk6/sparrow contains the following files

Loading the files please wait ....