All Projects → layershifter → Tlddatabase

layershifter / Tlddatabase

Licence: apache-2.0
[DEPRECATED] Abstraction layer for Public Suffix List in PHP

Labels

Projects that are alternatives of or similar to Tlddatabase

Semantic forms
Form generators leveraging semantic web standards (RDF(S), OWL, SPARQL , ...
Stars: ✭ 63 (-5.97%)
Mutual labels:  database
Ahwen
A simple SQL database
Stars: ✭ 66 (-1.49%)
Mutual labels:  database
Linkedingiveaway
👨🏽‍🏫You can learn about anything over here. What Giveaways I do and why it's important in today's modern world. Are you interested in Giveaway's?🔋
Stars: ✭ 67 (+0%)
Mutual labels:  database
Learned Indexes
Implementation of BTree part for paper 'The Case for Learned Index Structures'
Stars: ✭ 64 (-4.48%)
Mutual labels:  database
Wooridb
WooriDB is a general purpose time serial database. It is schemaless, key-value storage and uses its own query syntax that is similar to SparQL.
Stars: ✭ 66 (-1.49%)
Mutual labels:  database
Migration
Simple and pragmatic migrations for Go applications.
Stars: ✭ 66 (-1.49%)
Mutual labels:  database
Aliyun Tablestore Go Sdk
TableStore SDK for Golang
Stars: ✭ 63 (-5.97%)
Mutual labels:  database
Covenantsql
A decentralized, trusted, high performance, SQL database with blockchain features
Stars: ✭ 1,148 (+1613.43%)
Mutual labels:  database
App
Reusable framework for micro services & command line tools
Stars: ✭ 66 (-1.49%)
Mutual labels:  database
Powa Web
PoWA user interface
Stars: ✭ 66 (-1.49%)
Mutual labels:  database
Dbi
DBI - The Perl 5 Database Interface
Stars: ✭ 64 (-4.48%)
Mutual labels:  database
Scalikejdbc
A tidy SQL-based DB access library for Scala developers. This library naturally wraps JDBC APIs and provides you easy-to-use APIs.
Stars: ✭ 1,139 (+1600%)
Mutual labels:  database
Prequel
Prequel for Laravel. Clear and concise database management.
Stars: ✭ 1,141 (+1602.99%)
Mutual labels:  database
Littletable
An in-memory database of Python objects, searchable using quasi-SQL API
Stars: ✭ 64 (-4.48%)
Mutual labels:  database
Cutedb
A slick BTree on disk based key value store implemented in pure Go
Stars: ✭ 67 (+0%)
Mutual labels:  database
Docker Oracle12c
Docker image for Oracle Database 12c
Stars: ✭ 63 (-5.97%)
Mutual labels:  database
Syncchanges
Synchronize/Replicate database changes using SQL Server Change Tracking
Stars: ✭ 66 (-1.49%)
Mutual labels:  database
Books
Awesome Books
Stars: ✭ 66 (-1.49%)
Mutual labels:  database
Oblecto
Oblecto is a media server, which streams media you already own, and is designed to be at the heart of your entertainment experience. It runs on your home server to index and analyze your media such as Movies and TV Shows and presents them in an interface tailored for your media consupmtion needs.
Stars: ✭ 67 (+0%)
Mutual labels:  database
Backup
MySQL Database backup package for Laravel
Stars: ✭ 66 (-1.49%)
Mutual labels:  database

DEPRECATED

Please use https://github.com/jeremykendall/php-domain-parser.

TLDDatabase

Packagist.org Build Status Code Climate codecov

Abstraction layer for Public Suffix List in PHP. Used by TLDExtract.

Main idea of library provide easy and fast access to actual database of Public Suffix List. Library always supplied with actual database.

This package is compliant with PSR-1, PSR-2, PSR-4. If you notice compliance oversights, please send a patch via pull request.

Requirements

The following versions of PHP are supported:

  • PHP 5.5
  • PHP 5.6
  • PHP 7.0
  • PHP 7.1
  • HHVM

Basic usage

First of all you need load Store class.

$store = new \LayerShifter\TLDDatabase\Store();

For check existence of entry in database you need use isExists method:

$store->isExists(string $suffix) : bool;

$store->isExists('com'); // true
$store->isExists('comcom'); // false

Note: suffix must be without leading dot.

For get type of suffix you need use getType method:

For check existence of entry in database you need use isExists method:

$store->isExists(string $suffix): int;

$store->getType('com'); // \LayerShifter\TLDDatabase\Store::TYPE_ICANN = 1
$store->getType('s3.amazonaws.com'); // \LayerShifter\TLDDatabase\Store::TYPE_PRIVATE = 2

If entry doesn't exists method will throw exception, else it will return one of integer constants:

  • \LayerShifter\TLDDatabase\Store::TYPE_ICANN;
  • \LayerShifter\TLDDatabase\Store::TYPE_PRIVATE;

For direct check of type you can use isICANN or isPrivate method.

$store->isICANN(string $suffix) : bool;

$store->isICANN'com'); // true
$store->isICANN('s3.amazonaws.com'); // false

$store->isPrivate(string $suffix) : bool;

$store->isPrivate('com'); // false
$store->isPrivate('s3.amazonaws.com'); // true

Advanced usage

There are some cool features for developers.

Custom database

If you need operate with custom (non-packaged) database you simply need to add argument to Store constructor.

$store = new \LayerShifter\TLDDatabase\Store(string $filename);
$store = new \LayerShifter\TLDDatabase\Store(__DIR__ . '/cache/datatabase.php');

Update

If you use custom database you need update it 😉 So, you can use Update class.

$update = new \LayerShifter\TLDDatabase\Update(string $filename);
$update = new \LayerShifter\TLDDatabase\Update(__DIR__ . '/cache/datatabase.php');

$update->run();

HTTP-adapter

Basically library uses cURL adapter for updates, but you can use custom adapter.

class customHttp implements \LayerShifter\TLDDatabase\Http\AdapterInterface {
    public function get() {} 
}

$update = new \LayerShifter\TLDDatabase\Update(__DIR__ . '/cache/datatabase.php', 'customHttp');
$update->run();

Install

Via Composer

$ composer require layershifter/tld-database

Testing

$ composer test

Versioning

Library uses SemVer versioning. Where:

  • major makes incompatible API changes;
  • minor adds functionality, fully backwards-compatible;
  • patch is update of database from Public Suffix List.

Database has every week update cycle.

Contributing

Please see CONTRIBUTING and CONDUCT for details.

License

This library is released under the Apache 2.0 license. Please see License File for more information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].