1. Go to this page and download the library: Download ipl/stdlib library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ipl / stdlib example snippets
use ipl\Stdlib\Filter;
$filter = Filter::all(
Filter::equal('problem', '1'),
Filter::none(Filter::equal('handled', '1')),
Filter::like('service', 'www.*')
);
$row = [
'problem' => '1',
'handled' => '0',
'service' => 'www.icinga.com',
];
if (Filter::match($filter, $row)) {
// The row matches the rule set.
}
foreach ($filter->yieldRules() as $rule) {
// Inspect each leaf rule.
}
use ipl\Stdlib\Contract\Filterable;
use ipl\Stdlib\Filter;
use ipl\Stdlib\Filters;
class Query implements Filterable
{
use Filters;
}
$query = (new Query())
->filter(Filter::equal('problem', '1'))
->orNotFilter(Filter::equal('handled', '1'));
$filter = $query->getFilter();
use ipl\Stdlib\Events;
class Connection
{
use Events;
public const ON_CONNECT = 'connected';
public const ON_DISCONNECT = 'disconnected';
protected function isValidEvent($event): bool
{
return in_array($event, [static::ON_CONNECT, static::ON_DISCONNECT], true);
}
public function open(): void
{
// ... connect ...
$this->emit(self::ON_CONNECT, [$this]);
}
public function close(): void
{
// ... disconnect ...
$this->emit(self::ON_DISCONNECT, [$this]);
}
}
$conn = new Connection();
$conn->on(Connection::ON_CONNECT, function (Connection $c): void {
echo "Connected\n";
});
$conn->on(Connection::ON_DISCONNECT, function (Connection $c): void {
echo "Disconnected\n";
});
$conn->open();
$conn->close();
use ipl\Stdlib\Str;
// Convert snake_case or kebab-case identifiers to camelCase:
Str::camel('host_name'); // 'hostName'
Str::camel('display-name'); // 'displayName'
// Split on a delimiter and trim whitespace from every part in one pass:
Str::trimSplit(' foo , bar , baz '); // ['foo', 'bar', 'baz']
Str::trimSplit('root:secret', ':'); // ['root', 'secret']
// Always return exactly $limit parts: pads with null if the delimiter is
// absent, and fold any remainder into the last part if there are more
// separators than expected:
[$user, $pass] = Str::symmetricSplit('root', ':', 2); // ['root', null]
[$user, $pass] = Str::symmetricSplit('root:secret:extra', ':', 2); // ['root', 'secret:extra']
// Case-insensitive prefix check:
Str::startsWith('Foobar', 'foo', caseSensitive: false); // true
Str::startsWith('foobar', 'foo'); // true
// Empty-string check:
Str::isEmpty(null); // true
Str::isEmpty(' '); // true
Str::isEmpty('0'); // false
use ipl\Stdlib\Seq;
$users = [
'alice' => 'admin',
'bob' => 'viewer',
];
Seq::contains($users, 'viewer'); // true
[$key, $value] = Seq::find($users, 'admin'); // ['alice', 'admin']
// Match by predicate. Returns as soon as a result is found:
[$key, $value] = Seq::find(
$users,
fn(string $role): bool => $role !== 'admin'
); // ['bob', 'viewer']
// Transform values while preserving keys:
$roles = Seq::map($users, fn(string $role): string => strtoupper($role));
// Yield unique values while preserving their first keys:
$roles = Seq::unique(['first' => 'admin', 'second' => 'admin', 'third' => 1]);
use function ipl\Stdlib\iterable_key_first;
use function ipl\Stdlib\iterable_value_first;
$map = [
'id' => 42,
'name' => 'Alice',
];
iterable_key_first($map); // 'id'
iterable_value_first($map); // 42
// Works with generators and iterators. Does not
use function ipl\Stdlib\yield_groups;
foreach (yield_groups($rows, fn(object $row): string => $row->category) as $category => $items) {
// $items contains all rows for $category.
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.