workofstan/backyard

有用的函数和类的库

v3.4.2 2024-08-03 18:12 UTC

README

有用函数集合

Total Downloads Latest Stable Version Lint Code Base PHP Composer + PHPUnit + PHPStan

需求

  • PHP 5.3.0 或更高版本(即不使用 [] 而使用 array() 作为短语法,因为这种短语法只能从 PHP 5.4 开始使用)

安装

您可以使用 Composer 或简单地 下载发行版

Composer

首选方法是通过 composer。如果您尚未安装 composer,请按照 安装说明 进行操作。

一旦安装了 composer,请在您的项目根目录中执行以下命令以安装此库

composer require workofstan/backyard:^3.3.1

最后,务必包含自动加载器

require_once '/path/to/your-project/vendor/autoload.php';

下载发行版

如果您讨厌使用 composer,可以下载整个包。在 发行版 页面上列出了所有稳定版本。下载任何名为 backyard/archive/[TAG].zip 的文件,以包含此库及其依赖项的包。

解压缩您下载的 ZIP 文件,并在您的项目中包含自动加载器

require_once '/path/to/backyard/vendor/autoload.php';

部署

包含自动加载器后,您可以使用默认配置创建 backyard 对象

$backyard = new \WorkOfStan\Backyard\Backyard();

或者,您可以使用以下选项进行配置

$backyard = new \WorkOfStan\Backyard\Backyard(
    array(//default values
        //logger relevant that SHOULD be configured
        'logging_level'             => 5,       //log up to the level set here, default=5 = debug//logovat az do urovne zde uvedene: 0=unknown/default_call 1=fatal 2=error 3=warning 4=info 5=debug/default_setting 6=speed  //aby se zalogovala alespoň missing db musí být logování nejníže defaultně na 1 //1 as default for writing the missing db at least to the standard ErrorLog
        'mail_for_admin_enabled'    => false,   //fatal error may just be written in log //$backyardMailForAdminEnabled = "rejthar@gods.cz";//on production, it is however recommended to set an e-mail, where to announce fatal errors
        'error_log_message_type'    => 0,       //parameter message_type http://cz2.php.net/manual/en/function.error-log.php for my_error_log; default is 0, i.e. to send message to PHP's system logger; recommended is however 3, i.e. append to the file destination set either in field $this->BackyardConf['logging_file or in table system
        'logging_file'              => '',      //soubor, do kterého má my_error_log() zapisovat

        //logger relevant other
        'logging_level_name'        => array(0 => 'unknown', 1 => 'fatal', 'error', 'warning', 'info', 'debug', 'speed'),
        'logging_level_page_speed'  => 5,       //úroveň logování, do které má být zapisována rychlost vygenerování stránky
        'die_graciously_verbose'    => true,    //show details by die_graciously() on screen (it is always in the error_log); on production it is recomended to be set to to false due security
        'log_monthly_rotation'      => true,    //true, pokud má být přípona .log.Y-m.log (výhodou je měsíční rotace); false, pokud má být jen .log (výhodou je sekvenční zápis chyb přes my_error_log a jiných PHP chyb)
        'log_profiling_step'        => false,   //110812, my_error_log neprofiluje rychlost //$PROFILING_STEP = 0.008;//110812, my_error_log profiluje čas mezi dvěma měřenými body vyšší než udaná hodnota sec

        //geo relevant
        'geo_rough_distance_limit' => 1, //float //to quickly get rid off too distant POIs; 1 ~ 100km
        'geo_maximum_meters_from_poi' => 2500, //float //distance considered to be overlapping with the device position // 2500 m is considered exact location due to mobile phone GPS caching
        'geo_poi_list_table_name' => 'poi_list', //string //name of table with POI coordinates
    )
);

注意

注意:BackyardMysqli 不创建 Backyard->Mysqli 对象(例如 Backyard->Json),因为它不是由 LIB 自身使用的,更重要的是,LIB 的用户可以创建任意数量的这些对象。使用示例

$backyard = new WorkOfStan\Backyard\Backyard(array('logging_level' => 3));
$logger = $backyard->BackyardError;
$dbLink = new WorkOfStan\Backyard\BackyardMysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE, $logger);

class BackyardBriefApiClient

一个非常简单的 JSON RESTful API 客户端。它只发送 JSON 并返回一些可选的装饰器和错误记录。

  • sendJsonLoad - 发送 JSON 并返回带有第二个可选参数(HTTP 请求动词 GETPUTDELETE)的任何返回值
  • getJsonArray - 发送 JSON 并返回从响应 JSON 解码的数组
  • getArrayArray - 将数组编码为 JSON 并返回从响应 JSON 解码的数组

关于以前版本

它们的代码已被禁用,因此是安全的。

backyard 1 使用方法

此数组必须在调用 backyard 1 之前由应用程序创建

$backyardDatabase = array(
    'dbhost' => 'localhost',
    'dbuser' => 'user',
    'dbpass' => '',
    'dbname' => 'default',
);

调用 backyard 1

require_once __DIR__ . '/lib/backyard/deploy/functions.php';

backyard 2 使用方法

数组 $backyardDatabase(见上方)只有在存在包含 backyard 系统信息的 `system` 表(或 $backyardDatabase['system_table_name'] 中指定的不同名称)的表的情况下才应创建。

用法

require_once __DIR__ . '/lib/backyard/src/backyard_system.php';

需要基本 LIB 库。所有其他 LIB 组件都需要通过

require_once (__BACKYARDROOT__."/backyard_XXX.php");

推荐

要在日志记录方面保持控制,在要求 LIB 之前设置以下内容

$backyardConf['logging_level'] = 3;         //so that only fatal, error, warning are logged
$backyardConf['error_log_message_type'] = 3;//so that logging does not go to PHP system logger but to the monthly rotated file specified on the next line
$backyardConf['logging_file'] = '/var/www/www.alfa.gods.cz/logs/error_php.log';
$backyardConf['mail_for_admin_enabled']    = 'your@e-mail.address';   //fatal error are announced to this e-mail

一旦您的应用程序准备就绪,在要求 LIB 之前设置以下内容

$backyardConf['die_graciously_verbose'] = false;    //so that description contained within die_graciously() is not revealed on screen
$backyardConf['error_hacked']           = false;    //so that *ERROR_HACK* GET parameter is ignored (and 3rd party can't *debug* your application

src/emulator.php get_data 以定义的方式(@todo - 更好地描述)

src/emulate.php 是 emulator.php 的包装器

src/backyard_geo.php 中描述的地理定位函数。地理相关表的预期结构在 sql/poi.sql 中。

命名约定(2013-05-04)

  1. 命名约定
    • 我尝试产生长、自解释的方法名称。
    • 注释格式化为 Phpdoc,JSDoc
    • 我更喜欢标记变量类型。我写的是 rather entityA(实体数组)而不是简单的实体。例如,对于歌曲对象的实例,我命名变量为 songO。
    • 一些示例
      • 变量、方法、函数、elementId – camelCase
      • 类名 – UpperCamelCase
      • URL – 蛇形文本
      • 文件, 数据库列, 数据库表 – 下划线文本
      • 常量 – 大写字母
  2. 注释
    • 注释的主要语言是英语。
    • 已弃用或过时的代码块使用字母“x”作为前缀进行注释。我可能会像下面这样添加使代码过时的原因
    • //X他一开始就有ID: $_SESSION["id"] = User::$himself->getId();