Nejdřív si musíte udělat analýzu, k čemu to má sloužit, pak co to má umět, nakonec jak to má fungovat. Teprve pak můžete začít řešit, jak se to konkrétně realizuje (v jaké architektuře), a pak teprve přijde čas na výběr jazyka a ostatních nástrojů. Komunikace se skenerem čárových kódů je nějaký detail, který přijde až v té třetí fázi analýzy.
Je to vidět i na tom, že z vašeho dotazu není vůbec jasné, jakou máte představu o architektuře toho systému. Normálně se PHP používá na webové aplikace, takže máte PHP aplikaci na jednom serveru (zavřeném někde v serverovně), a k ní se připojuje větší množství klientů pomocí webového prohlížeče. Píšete, že na jeden počítač musí být „samozřejmě“ připojeno víc skenerů čárových kódů a aplikace (kterou zřejmě rozumíte tu PHP aplikaci na serveru) musí umět s těmi čtečkami komunikovat po sériovém portu. Tedy oním „počítačem“, ke kterému budou připojené ty čtečky čárových kódů, by byl server. Živě si představuju, jak máte server zavřený v nějakém kumbálu a k němu je sériovým kabelem připojeno 16 čteček čárových kódů, které se válí vedle toho serveru – a jsou úplně k ničemu.
Já bych si spíš představoval, že se skenerem čárových kódů pracuje uživatel, nikoli server. Uživatel webové aplikace pracuje s webovým prohlížečem u svého počítače, tabletu nebo mobilu. U toho počítače sedí jeden uživatel, má aplikaci otevřenou typicky v jednom okně webového prohlížeče – takže mu bohatě stačí jediná čtečka čárových kódů. Navíc na tom počítači je příslušnou částí aplikace webový prohlížeč, nikoli PHP – takže byste musel řešit jak s tou čtečkou bude pracovat prohlížeč. Čtečka připojená přes sériový port by znamenala, že byste musel mít nativní plugin do prohlížeče. Čtečka připojená přes USB by byla lepší, dnes existuje v HTML5 podpora pro USB v prohlížeči – ale nevím, jak jsou na tom prohlížeče (řekl bych, že to bude spíš na počátku), a také zda by v prohlížečích existovala podpora pro čtečku čárových kódů. V prohlížeči je daleko lepší skener, který se chová jako klávesnice – to pak musíte vyřešit akorát to, aby byl v okamžiku snímání fokus na správném políčku formuláře. Navíc bych si teda představoval, že někde ve skladu nebude nikdo chodit s počítačem, ale s tabletem nebo nějakým jiným mobilním zařízením.
Předpokládám, že vaše využití je jiné, možná máte stacionární místa, kde se snímají čárové kódy, a kde je čteček několik (třeba jako pokladny v obchodech). Jenže to jsme se vůbec nedozvěděli, takže vám těžko můžeme něco rozumného poradit. Navíc i v takovém případě je možné použít HID čtečky, klávesnic můžete mít k počítači připojených kolik chcete. Čtečky připojené přes sériový port se používají proto, že počítač dostane informaci o tom, že byl přečten čárový kód – bez ohledu na to, která aplikace má focus. Takže uživatel nemusí být v aplikaci na tom správném místě, dokonce ani nemusí mít aplikaci spuštěnou na popředí, a pouhým přečtením čárového kódu ji aktivuje a dostane se na správné místo v aplikaci.
A ještě k tomu, že si tu aplikaci chcete napsat sami – i tam, kde se software vyvíjí jak na běžícím pásu, jsou problémy s podceňováním odhadů a s tím, že vývoj nakonec trvá déle a je dražší. Pokud vy s vývojem softwaru nemáte žádné zkušenosti, počítejte s tím, že váš odhad nebude podhodnocený dvakrát nebo třikrát, ale třeba desetkrát nebo dvacetkrát. Takže bych zvážil, jestli se vám přeci jen nevyplatí přizpůsobit si nějaké hotové řešení – a nebo si na to alespoň najmout firmu, která bude vědět, jak udělat analýzu a jak to pak realizovat.