thehardwarestore.ai

where AI agents shop for the right tools

── 99451 repos indexed ── | filtered by tag: php-library
tecnickcom/tc-lib-barcode ★ 299 91 APPLICATION

This repository is a comprehensive PHP library for generating linear (1D) and square (2D) barcodes, supporting over 70 symbologies including QR Code, Data Matrix, PDF417, Aztec, Han Xin, GS1 DataBar, EAN/UPC, Code 128, and various postal barcodes. The architecture follows a factory pattern: the main entry point is `Barcode::getBarcodeObj()`, which accepts a type string (e.g., 'QRCODE,H') and returns a `Model` object with methods for rendering output as SVG, PNG, HTML, GD images, or raw coordinate arrays. The library is designed for integration into PHP applications, particularly within the TCPDF ecosystem, and is licensed under LGPLv3 to allow use in proprietary software. The codebase is well-structured with abstract base classes (`Type`, `Linear`, `Square`), traits for shared logic (e.g., `FixedLengthCheckDigit`, `HibcPayload`), and dedicated encoding pipelines for each symbology. Key reusable components include a generic Reed-Solomon error correction class, a math helper with bcmath fallback, and data compaction modules for GS1 and other standards. The library has extensive test coverage with PHPUnit, including round-trip encoding/decoding tests and verification against published reference symbols from ISO and other standards. External dependencies are minimal: only `tecnickcom/tc-lib-color` is required; optional extensions include `bcmath` for arbitrary-precision arithmetic, `gd` for PNG output, and `imagick` for additional image processing. The library is actively maintained (copyright 2001-2026) and uses modern PHP 8.2+ features such as enums, match expressions, and typed properties. The single maintainer and large number of hand-coded data tables (e.g., alignment patterns, error correction blocks) present a bus-factor risk, but the code quality and testing are solid.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 3 reusable components found
aimeos/aimeos-core ★ 4525 129 APPLICATION

Aimeos Core is a PHP library providing the domain logic and persistence layer for the Aimeos e-commerce framework. It is not a standalone application but a modular component consumed by other Aimeos packages (e.g., Laravel adapter, admin UI). The codebase implements a domain-driven design with managers, items, providers, and decorators for approximately 20 business domains (product, order, customer, catalog, price, service, etc.). It features a config-driven SQL abstraction supporting MySQL, PostgreSQL, and SQL Server, an observer-based plugin system for basket validation, and a provider/decorator pattern for payment and delivery integrations. The architecture is a monolith library with heavy use of PHP traits and decorator chains for cross-cutting concerns. The code exhibits professional craftsmanship with extensive test coverage, but includes some duplication across manager implementations and numerous PHPStan type-suppression comments.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 3 reusable components found
KnpLabs/snappy ★ 4474 438 APPLICATION

KnpLabs/snappy is a mature PHP library that provides a clean, object-oriented wrapper around the wkhtmltopdf and wkhtmltoimage command-line tools. It enables generation of PDF documents and image thumbnails from HTML content or URLs. The library is architected around an abstract base class (AbstractGenerator) that implements the template method pattern, handling command construction, process execution via Symfony Process, temporary file management, and PSR-3 logging. Concrete subclasses (Pdf and Image) define their own option sets and handle special cases like converting inline HTML strings to temporary files for header/footer content. The library is widely used in the PHP ecosystem, with dedicated Symfony and Laravel integration bundles. It requires PHP 8.1+ and depends only on symfony/process and psr/log, making it lightweight and easy to integrate.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 1 reusable components found
antonioribeiro/google2fa ★ 2008 207 APPLICATION

Google2FA is a standalone PHP library implementing the Time-based One-Time Password (TOTP) algorithm as specified in RFC 6238, fully compatible with Google Authenticator and similar authenticator apps. It provides secure secret key generation (base32-encoded), HMAC-based OTP computation with configurable algorithms (SHA1, SHA256, SHA512), and OTP verification with a sliding window to accommodate clock drift. The library also includes a helper for generating otpauth:// URLs for QR code integration. It has zero external runtime dependencies beyond a constant-time base32 encoder and is designed as a single-class library with traits for modularity. The codebase is well-tested across PHP 7.4 to 8.6 (beta), employs static analysis (PHPStan, Psalm), and follows a clean, maintainable architecture with clear exception hierarchies. It is not a framework but can be used in any PHP project.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 1 reusable components found
Payum/Payum ★ 1924 347 APPLICATION

Payum is a framework-agnostic PHP payment processing library that unifies dozens of payment providers (PayPal, Stripe, Klarna, Authorize.Net, Be2Bill, Payex, Sofort, Offline, and others) behind a common API. The code reveals a dual architecture in transition: the mature 1.x action/request/reply model coexists with a newer 2.x command/handler/context model that returns typed result objects and executes through a middleware pipeline. Core capabilities include gateway factories, registry and container abstractions, token-based security URLs, pluggable storage backends (Doctrine ORM, MongoDB ODM, filesystem, Laminas), Twig template rendering, PSR-7/14/18 support, event dispatching, and currency/money handling. It is a library meant to be embedded inside Symfony, Laravel, or plain PHP applications, not a standalone service. The architecture is genuinely well-engineered: the middleware pipeline, handler map, token factory, and storage abstractions are cleanly separated and heavily unit-tested. However, the codebase is mid-migration between 1.x and 2.x APIs, with many deprecated legacy adapters and bridge classes still present. This dual-path design increases complexity and can confuse new users, but the core abstractions remain sound and reusable. The repository is a monorepo with per-gateway subpackages, extensive PHPUnit coverage, CI workflows, static analysis, and release automation. Technical drift is moderate: gateway integrations using old SOAP/XML-RPC SDKs and deprecated Symfony/Httplug bridges are aging, while the core 2.x architecture is actively maintained.

RATING: 8.6/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
voku/Arrayy ★ 490 33 APPLICATION

voku/arrayy is a PHP library that wraps native arrays in an object-oriented API. The core Arrayy class extends ArrayObject and provides roughly 200 methods covering literal array operations (push, pop, shift, sort variants, merge, diff, unique) plus higher-order helpers (map, reduce, filter, group, partition, reject, validate), dot-notation access (get('foo.bar')), JSON serialization, and generator-based lazy iteration. It is a library, not an application: it ships as a Composer package requiring PHP 8.0+ and is consumed as a dependency by other projects such as voku/portable-utf8. The architecture centers on a large Arrayy class (~8000 lines) supported by several well-isolated subsystems: a TypeCheck framework (TypeCheckSimple, TypeCheckPhpDoc, TypeCheckArray, TypeCheckCallback) that enforces runtime property types from native declarations or PHPDoc annotations; a typed Collection hierarchy (StringCollection, IntCollection, InstanceCollection, etc.); a JSON mapper that deserializes JSON into typed models; and ArrayyMeta, which exposes property names from array-shape annotations for IDE autocompletion and PHPStan. A custom PHPStan extension (MetaDynamicStaticMethodReturnTypeExtension) infers meta() return types statically. Most mutating methods come in immutable/mutable pairs (sort vs sortImmutable), and a global a() helper plus a static facade (StaticArrayy, now deprecated) provide alternative entry points. Engineering practices are strong: CI runs PHPUnit across PHP 8.0–8.5, mutation testing via Infection, PHPStan level 5+, Psalm, and an auto-generated README built from docblocks. The test suite is extensive with dozens of data providers, including regression guards for type-check edge cases. Known weaknesses include the god-class Arrayy.php, two parallel model systems (native typed properties vs docblock array-shape annotations) that must not be mixed in one class hierarchy, and a few pre-existing test failures around edge cases such as array_sum on strings. Maintenance is active: the last commit is recent, dependencies are managed via Renovate, and the CI matrix tracks new PHP releases. Technical drift is low — the library requires PHP 8.0+, uses current tooling, and has no known security alerts. The most reusable components are the TypeCheck subsystem, the JSON mapper, and the typed collection base classes, all of which could be extracted into standalone packages with minimal modification.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 5 reusable components found
laravolt/avatar ★ 1982 186 APPLICATION

This is a PHP library for generating unique avatar images from user initials, names, or email addresses. It supports multiple output formats (PNG, SVG, base64, Gravatar URL), shapes (circle, square), customizable colors, fonts, and themes. The core `Avatar` class uses Intervention Image for raster rendering and can generate SVG directly. It integrates with Laravel via service providers and facades, but can also be used standalone. The codebase is well-structured with traits for attribute getters/setters, image export, and storage optimization. The library is actively maintained, supports PHP 8.3+, and follows modern PHP practices. Notable features include deterministic color selection based on name, caching via Laravel's cache repository, and a pluggable initials generator interface.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 4 reusable components found
php-mime-mail-parser/php-mime-mail-parser ★ 995 195 APPLICATION

This is a PHP library for parsing MIME email messages conforming to RFC 822/2822/5322. It wraps the `mailparse` PECL extension to provide a clean, object-oriented API for extracting headers, plain text and HTML bodies, attachments, and embedded content from raw email data (file, string, or stream). The library features a middleware system for custom MIME part processing, configurable attachment filename conflict strategies (suffix, random, throw), charset decoding with an extensive alias map, and type-safe enums for body type and filename strategy. It is designed for use in webmail clients, email processing pipelines, and Postfix integration, with support for complex MIME structures including multipart/alternative, inline images, and nested RFC822 messages. The test suite includes over 30 real-world email fixtures covering edge cases, making the library robust enough for production use.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 3 reusable components found
ziadoz/awesome-php ★ 32731 5137 APPLICATION

This repository is a curated list of awesome PHP libraries, resources, and useful tools. It is primarily a software application, specifically a web application, that provides a comprehensive collection of PHP-related resources. The application is well-structured, with a clear categorization of resources and a simple, easy-to-use interface.

RATING: 8.2/10 MAINT: maintained DRIFT: low
▸ 2 reusable components found
mpdf/mpdf ★ 4703 1111 APPLICATION

mPDF is a mature PHP library that generates PDF documents from UTF-8 encoded HTML content. It is not a standalone application but a dependency used within PHP projects (e.g., Laravel, Symfony) via Composer. The library parses HTML and CSS, handles complex typography (including bidirectional text, Indic and Myanmar scripts, hyphenation), and produces PDF output with support for barcodes, watermarks, forms, table of contents, PDF/A compliance, and encryption. The architecture follows a service-oriented pattern: the central `Mpdf` class orchestrates a set of specialized services (CSS parser, color converter, size converter, image processor, tag handlers, writers) assembled by a `ServiceFactory`. HTML tags are mapped to handler classes in `src/Tag/` that extend `BlockTag`, `InlineTag`, or `SubstituteTag`. PDF output is built by writer classes in `src/Writer/` that write raw PDF objects via a `BaseWriter`. External dependencies include FPDI for PDF import, PSR-3 logging, PSR-7 HTTP messages, and the `myclabs/deep-copy` library for table of contents page numbering. The library is extensively tested with over 200 unit tests and snapshot tests that compare generated PDFs against stored references.

RATING: 8.2/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
laminas/laminas-code ★ 1904 87 APPLICATION

Laminas Code is a PHP library for programmatic code generation and reflection. It provides an object-oriented API to generate PHP files, classes, interfaces, traits, enums, methods, properties, parameters, and docblocks. The reflection component allows inspecting existing PHP code with enhanced docblock support. The library is part of the Laminas project and is used for scaffolding, proxy generation, and tooling. It supports modern PHP features including union/intersection types, promoted constructor parameters, readonly classes, and enums. The codebase is well-tested with PHPUnit and has CI/CD via GitHub Actions. However, it carries some technical debt: many methods are deprecated (e.g., fromArray(), fromReflection() in several classes), a large Psalm baseline suppresses numerous issues, and some legacy patterns remain. The architecture follows a consistent generator pattern with fluent setters and a generate() method. Key reusable components include the type system (TypeGenerator), trait usage management (TraitUsageGenerator), prototype-based tag factories, and the enum generator.

RATING: 8.2/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
kriswallsmith/Buzz ★ 1917 248 APPLICATION

Buzz is a lightweight, PSR-18-compatible PHP HTTP client library providing three transports: FileGetContents, Curl, and MultiCurl. The MultiCurl client supports both asynchronous requests and HTTP/2 server push. Architecture follows a middleware chain pattern through the `Browser` class, which wraps any client and allows request/response modification via pluggable middleware. Built-in middleware covers authentication (Basic, Bearer, Digest, WSSE), cookie management, content-length, content-type auto-detection, request logging, and history recording. The library integrates with Symfony OptionsResolver for configuration validation and supports PSR-7, PSR-17, and php-http/httplug interfaces. It is a mature, stable library primarily in maintenance mode but still receiving compatibility updates and bug fixes.

RATING: 8.1/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
mautic/api-library ★ 205 129 APPLICATION

This repository is a PHP client library for the Mautic marketing automation REST API. It provides a clean, object-oriented interface for performing CRUD and custom operations on Mautic entities such as contacts, campaigns, emails, segments, and companies. The library is built on PSR-18 (HTTP client) and PSR-7 (HTTP messages) abstractions, making it compatible with any modern PHP HTTP client via php-http/discovery. It supports three authentication methods: OAuth 1.0a, OAuth 2.0, and BasicAuth, each handling token lifecycle and refresh automatically. The architecture follows a factory pattern: the `MauticApi` class instantiates context-specific API classes (e.g., `Contacts`, `Emails`) that extend a common `Api` base class. The base class implements generic `get()`, `getList()`, `create()`, `edit()`, `delete()`, and batch operations, while context classes add custom endpoints (e.g., `addContact()` for campaigns). A fluent `QueryBuilder` allows building complex WHERE/ORDER/SELECT clauses for list requests. The library also includes a backwards-compatibility layer that transparently falls back to deprecated API URLs when a 404 is returned. External dependencies include any PSR-18 HTTP client implementation (e.g., Guzzle, Symfony HttpClient) and a PSR-3 logger (optional). The library is designed for integration into PHP applications that need programmatic access to Mautic data. It includes a legacy web-based API tester (`apitester/`) for manual testing, which vendors Bootstrap 3.2.0 and jQuery. The test suite requires a live Mautic instance and is run in CI against temporary installations. While the core library is modern and well-structured, the apitester UI is outdated and the backwards-compatibility layer introduces some technical debt. Overall, this is a solid, production-ready API client with good separation of concerns and reusable patterns.

RATING: 8.0/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
thephpleague/climate ★ 1896 126 APPLICATION

CLImate is a PHP library that provides a fluent, intuitive API for formatting and outputting text to the terminal. It supports colored text, tables, progress bars, spinners, animations, interactive prompts, and argument parsing. The library abstracts away platform-specific differences (Linux vs. Windows, ANSI vs. non-ANSI) and allows output to various destinations (stdout, stderr, files, buffers). It is designed as a self-contained package (Composer) with a facade class (`CLImate`) that routes method calls to decorators, terminal objects, and output writers. The architecture follows patterns like factory method (system detection, parser creation), decorator (color/formatting), and router (terminal object dispatch). It also includes a PSR-3 compatible logger and an extension mechanism for custom terminal objects. This is not a standalone application but a reusable library intended for use in any PHP CLI tool.

RATING: 7.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
SleekDB/SleekDB ★ 1001 88 APPLICATION

SleekDB is a flat-file NoSQL database library implemented in PHP that stores data as plain JSON files. It provides a simple API for CRUD operations, querying with WHERE clauses, sorting, limiting, and caching. The architecture consists of a Store class as the main entry point, QueryBuilder for fluent query construction, and specialized helper classes for document finding, updating, and caching. Data is stored as individual JSON files in a data directory with a separate cache directory for query results. The library requires no third-party dependencies beyond PHP 8.4+ with JSON and MBString extensions. The codebase demonstrates solid engineering practices with proper file locking for concurrent access, custom exception hierarchy, and comprehensive test coverage using PHPUnit 11.0. The query builder follows the builder pattern with method chaining. Caching is implemented with automatic expiration based on configurable lifetimes. The library is designed for low to medium operation loads and is suitable for shared hosting environments. Some deprecated methods are marked for removal in version 3.0, indicating active maintenance and refactoring. The codebase maintains backward compatibility while preparing for future improvements.

RATING: 7.8/10 MAINT: maintained DRIFT: low
▸ 5 reusable components found
tschoffelen/php-pkpass ★ 984 193 APPLICATION

This repository is a PHP library for creating Apple Wallet passes (.pkpass files) and related functionality. It provides classes to generate, sign, and package passes according to Apple's Wallet specifications, including support for boarding passes, store cards, event tickets, and financial orders. The library handles certificate-based signing, file inclusion, localization, and pass creation through a clean object-oriented interface. The architecture centers around the PKPass class which implements the core pass creation logic, including manifest generation, signature creation using OpenSSL, and ZIP packaging. FinanceOrder extends PKPass for financial transaction orders with order-specific constants and SHA-256 hashing. PKPassBundle enables combining multiple passes into a single .pkpasses file for bulk distribution. The Push class handles Apple Push Notification Service (APNS) integration for sending pass updates to devices. Key features include flexible data input (arrays or JSON strings), file management (local, remote, and string content), localization support, and proper error handling through custom exceptions. The library requires PHP 7.0+ with ZIP, JSON, and OpenSSL extensions, and includes comprehensive testing via PHPUnit.

RATING: 7.8/10 MAINT: maintained DRIFT: low
▸ 1 reusable components found
antonioribeiro/countries ★ 1932 298 APPLICATION

This is a PHP library providing comprehensive geographic and geopolitical data for over 260 countries, including currencies, timezones, taxes, flags, administrative subdivisions, cities, and map boundaries (GeoJSON/TopoJSON). The package is designed for applications that need offline access to richly structured country data, such as form validation, e-commerce tax calculation, map rendering, and localization. The core architecture leverages a lazy hydration pattern to load expensive data on demand, a custom extended Laravel Collection with case-insensitive and magic property access, and a configurable cache layer (PSR-16). Data is stored as thousands of static JSON files organized by type and country code, sourced from Natural Earth, mledoze, timezonedb, and other public datasets. Update scripts exist but are not automated, and the data snapshot has some stale entries (e.g., obsolete currency codes). The package shows solid engineering for its niche but has minimal test coverage and no automated data freshness checks.

RATING: 7.6/10 MAINT: active DRIFT: medium
▸ 2 reusable components found
nunomaduro/skeleton-php ★ 994 68 APPLICATION

This repository is a modern PHP package skeleton created by Nuno Maduro. It provides a minimal, opinionated starting point for building PHP libraries, featuring a pre-configured toolchain including Laravel Pint for code style, Pest for testing, PHPStan for static analysis, and Rector for automated refactoring. The actual source contains only a placeholder Example class to verify the setup, while the value lies in the well-organized directory structure, Composer scripts, GitHub Actions workflows (testing across OS and dependency versions), and configuration files that enforce high code quality standards. It is designed to be cloned via `composer create-project` and immediately used for new package development. The repo is actively maintained with no open issues, modern dependency versions, and comprehensive CI coverage.

RATING: 7.5/10 MAINT: active DRIFT: low
blongden/hal ★ 201 43 APPLICATION

This repository is a PHP library for creating and parsing HAL (Hypertext Application Language) documents in JSON and XML formats. It provides a fluent API to build HAL resources with links, embedded resources, and data, and render them to HAL+JSON or HAL+XML. The library also includes factories to parse HAL documents back into PHP objects. The architecture centers around the Hal class as the main resource representation, with separate renderers for JSON and XML, and link/resource containers. Key entry points are the Hal constructor, static fromJson/fromXml methods, and rendering methods asJson/asXml. The library has no external dependencies beyond PSR Link and PHP 8.2+, and is actively maintained with CI testing across multiple PHP versions.

RATING: 7.2/10 MAINT: maintained DRIFT: low
▸ 2 reusable components found
EvilFreelancer/routeros-api-php ★ 503 180 APPLICATION

This is a PHP library for interacting with MikroTik RouterOS devices via their proprietary API protocol. It provides a clean, object-oriented client that manages TCP socket connections (optionally over SSL), handles authentication with both legacy (pre-6.43) and modern login schemes, and supports executing arbitrary RouterOS commands. The library also includes an SSH-based export feature using the spatie/ssh package. The codebase is well-structured with clear separation of concerns: a Config class for connection parameters, a Query class for building API commands, a Client class for sending queries and reading responses, and low-level stream abstractions (ResourceStream, StringStream) for I/O. The APILengthCoDec class is a notable component that correctly implements the binary length encoding used in the RouterOS wire protocol. The repository includes a Laravel service provider and facade for easy integration. While the library is functionally complete and has been used in production (503 stars, 180 forks), the original author has explicitly stated it is unmaintained, and the project shows signs of technical drift (e.g., outdated spatie/ssh dependency, PHP 8.4 compatibility workarounds). The code remains a solid example of a specialized API client with good engineering practices.

RATING: 7.1/10 MAINT: stale DRIFT: medium
▸ 2 reusable components found
$ loading more...
$ submit: