r0073rr0r/skritphp
最新稳定版本:1.1.1
Composer 安装命令:
composer require r0073rr0r/skritphp
包简介
PHP port of Skrit Serbian slang transforms (satrovacki, utrovacki, leetrovacki) with Laravel support.
README 文档
README
PHP port of Python skrit (v0.6.0) for Serbian slang-style text transforms:
satrovackiutrovackileetrovacki- unified
autorouter with encode/decode detection
Repo/package identity:
- GitHub:
r0073rr0r/SkritPHP - Composer:
r0073rr0r/skritphp
Requirements
- PHP
^8.2 - ext-mbstring
Install
composer require r0073rr0r/skritphp
Pure PHP Usage
Unified Router (Skrit::encodeText)
<?php use Skrit\Skrit; [$encoded, $mode] = Skrit::encodeText('Zemun zakon matori', mode: 'auto'); // $mode = 'satro' // $encoded = 'Munze konza torima'
Force specific mode
<?php use Skrit\Skrit; [$satro] = Skrit::encodeText('bazen', mode: 'satro'); // zenba [$utro] = Skrit::encodeText('bazen', mode: 'utro'); // uzenzabanje [$leet] = Skrit::encodeText('bazen', mode: 'leet', leetBase: 'satro'); // 23n84
Direct transformer classes
<?php use Skrit\Satrovacki; use Skrit\Utrovacki; use Skrit\Leetrovacki; $satro = new Satrovacki(); echo $satro->encode('Beograd'); // Gradbeo $utro = new Utrovacki(prefix: 'x', infix: 'yy', suffix: 'zz'); echo $utro->encode('bazen'); // xzenyybazz $leet = new Leetrovacki(baseMode: 'utro', leetDensity: 1.0); echo $leet->encode('bazen'); // 00zen24ban73
Supported Router Options
mode:auto|satro|utro|leetdetectFromminWordLengthplainCTarget:ц|ч|ћsoftTjToCyrillicleetBase:auto|satro|utroleetProfile:basic|readable|fullleetComplexityleetDensityzaStyle:24|z4njeStyle:n73|nj3|њutroPrefix,utroInfix,utroSuffix
Laravel Usage
Auto-discovery is enabled in composer.json.
Publish config
php artisan vendor:publish --tag=skrit-config
Facade
<?php use Skrit\Laravel\Facades\Skrit; [$encoded, $mode] = Skrit::encodeText('Zemun zakon matori', ['mode' => 'auto']);
Dependency Injection
<?php use Skrit\Contracts\SkritServiceInterface; final class CipherController { public function __construct(private SkritServiceInterface $skrit) {} public function __invoke(): array { return $this->skrit->encodeText('uzenzabanje', ['mode' => 'auto']); } }
Livewire Example
Livewire sample component is included at:
examples/livewire/app/Livewire/SkritCipher.phpexamples/livewire/resources/views/livewire/skrit-cipher.blade.php
To use it in your Laravel app:
- Copy component class to
app/Livewire/SkritCipher.php. - Copy blade view to
resources/views/livewire/skrit-cipher.blade.php. - Render it in a blade page:
<livewire:skrit-cipher />.
Testing
Run full test suite:
composer test
Run strict gate (tests + enforced 100% coverage):
composer test:strict
Included tests cover:
- parity of core behavior against Python reference cases
- invariant checks on a 963-word Serbian corpus across satro/utro/leet
- satro/utro/leet transformer rules
- unified auto router behavior
- Laravel service container + facade integration
Linguistic Docs
Bundled docs (hostable from this repo):
License
GPL-3.0-or-later
Community
统计信息
- 总下载量: 3
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 5
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: GPL-3.0-or-later
- 更新时间: 2026-04-13