phdevutils / psic
Philippine Standard Industrial Classification (PSIC 2009) — 21 sections (A–U) and 88 divisions with lookup, validation, and search helpers. Data from the PSA/NSCB. Zero-dependency.
Requires
- php: >=8.1
Requires (Dev)
- phpunit/phpunit: ^10.0
README
The Philippine Standard Industrial Classification (PSIC 2009) for PHP — the 21 sections (1-letter codes A–U) and 88 divisions (2-digit codes) with lookup, validation, and keyword-search helpers. PHP companion to the npm package @ph-dev-utils/psic.
Pairs naturally with phdevutils/business for tagging a registered company's industry.
composer require phdevutils/psic
Quick start
use PhDevUtils\Psic\Psic; Psic::findSection('C'); // ['code' => 'C', 'title' => 'Manufacturing', 'divisions' => ['10', …, '33']] Psic::findDivision('62'); // ['code' => '62', 'title' => 'Computer programming, …', 'section' => 'J'] Psic::sectionOf('62'); // ['code' => 'J', 'title' => 'Information and communication', …] Psic::listDivisions(['section' => 'C']); // the 24 manufacturing divisions (10–33) Psic::search('insurance'); // ['sections' => [K], 'divisions' => [65, 66, …]]
API
| Method | Returns |
|---|---|
Psic::listSections() |
array — all 21 sections (A–U) |
Psic::listDivisions($filter = []) |
array — all 88; filter by section (case-insensitive) |
Psic::findSection($code) |
section array or null — by 1-letter code (case-insensitive) |
Psic::findDivision($code) |
division array or null — by 2-digit code |
Psic::sectionOf($divisionCode) |
section array or null — the parent section of a division |
Psic::isSectionCode($code) |
bool — is it one of the 21 section letters |
Psic::isDivisionCode($code) |
bool — is it one of the 88 division codes |
Psic::search($query) |
['sections' => [...], 'divisions' => [...]] — title keyword or exact code |
Psic::meta() |
array — provenance + version note |
A section array: code (A–U), title, divisions (list of 2-digit codes). A division array: code (2-digit), title, section (parent letter). search() division results add a sectionTitle key.
Scope & data
This release covers the two stable top levels of PSIC 2009 — sections and divisions — which is what most industry-categorisation use cases need. The finer group / class / sub-class levels (3–5 digit codes) are out of scope for now.
Data is transcribed from the PSA/NSCB 2009 PSIC codes document (patterned after the UN ISIC Rev.4 at the division level). PSIC 2019 is a newer revision — confirm against the PSA when the latest codes matter. Not affiliated with the PSA/NSCB.
License
MIT. Classification data is factual public information from the PSA/NSCB.