mll-lab/microplate
mll-lab/microplate is a PHP package for modeling microplates, wells, and well coordinates. It supports defining plate formats, validating positions, and organizing assay layouts for lab automation and sample-tracking workflows.
CoordinateSystem*Well, MicroplateSet*), which sit underneath any feature involving plate maps, well addressing, assay layouts, hit-picking, or sample tracking. This is a genuine domain primitive rather than generic utility code — it shortens estimation for lab-facing features.POSITIONS_COUNT and PLATE_COUNT constants signals the maintainer is investing in ergonomics and standardizing across multiple plate/coordinate variants. That supports planning for new plate formats and instrument types as a config-level exercise rather than a code change — useful when scoping support for additional assay plate types or vendor hardware.Adopt when:
MicroplateSet* variants and their fixed PLATE_COUNT imply.Look elsewhere when:
Due diligence before adoption: pin the version, confirm PHP/Laravel compatibility, review test coverage of the coordinate mapping, and check how breaking changes have historically been handled (the v6 major suggests a stable API but implies prior churn).
For executives: This is a small, mature (v6.x) Laravel package that gives us a correct, reusable foundation for anything involving lab plates and wells — sample tracking, assay setup, results mapping. The business case is risk reduction: errors in well addressing mean mislabeled samples and unreliable results, which is expensive and reputationally damaging in a lab context. Buying this rather than building it gets us to new plate formats and instrument types faster, and this release is additive with no migration cost.
For engineering: Adopt as the source of truth for well/plate coordinates instead of local helper functions. v6.3.0 is a non-breaking, additive release that introduces POSITIONS_COUNT and PLATE_COUNT constants across the coordinate-system and microplate-set classes — use them in validation, grid rendering, and import/export rather than hardcoded numbers. No API changes to absorb; safe to take in a routine dependency bump. Flag any place we currently duplicate this logic so we can consolidate deliberately rather than opportunistically.
How can I help you explore Laravel packages today?