[projekt] PHP minőségellenörző szoftver

Sziasztok HUPtársak, boldog új évet!

Tegnap este megszállt az ihlet és gyorsan összedobtam egy prototípust egy projektre amit régóta meg akartam csinálni. Íme a kód: https://github.com/opsbears/phpqa

Maga a program PHP kódot ellenőriz kurrens best practicek betartására. Jelenleg elég limitált a fícsörszet, javarészt az új PHP 7-es dolgokat nézi:

- nincs declare(strict_types=1) a fájlok elején.
- nincs type hint egy függvény paraméteren
- nincs return type egy függvényen de van return, vagy PHP 7.1-től nincs return type hint a függvényen
- nem PSR-4-es betöltést használ a kód, hibás vagy hiányzik a composer.json, illetve ha nem a megfelelő fájlban van az adott osztály.
- egy fájlban keveredik a PHP és nem PHP kód

Amit még szeretnék:

- inkonzisztens return-ök kezelése (pl. nem minden ágban van return vagy a visszaadott adatok típusa eltérő)
- típusellenőrzés változókra (pl. egy függvényben megváltozik a változó típusa vagy nem megfelelő a return típus)
- osztály függvényhívás potenciális NULL értékre

Amint látjátok, ez leginkább az erős típusosság irányába megy és hasonlít a HHVM typecheckerére. Emellett nem helyettesíti az olyan eszközöket mint a PHPCS. (Technikailag a PHPCS a tokenizált kóddal dolgozik, amíg az én kódom az AST-t nézi.)

Értelemszerűen a kódja még erősen prototípus minőségével rendelkezik, a későbboekben szeretnék takarítani és egyszerűbbé szeretném tenni az inspectionök írását.

Amire kíváncsi vagyok az az, hogy Ti mit tennétek még bele?

Hozzászólások

Off: szilvás buktát, mert azt szeretem.

Boldog új évet! :)

Az Opsbearses cuccok kozott takaritani kellene, jopar dolog outdated, szoval ovatosan. A random kodjaim ezeken GitHub helyen laknak:

- https://github.com/janoszen
- https://github.com/Webtudor
- https://github.com/hackification
- https://github.com/opsbears
- https://github.com/refactorzone
- https://github.com/refaktormagazin
- https://github.com/ubbs

--
Pásztor János
Sole Proprietor @ Opsbears | Development Lead @ IXOLIT | Refaktor Magazin | Refactor Zone

PHP is a dynamic, loosely typed language, that uses copy-on-write and reference counting.

Forrás

Nekem egy ideje benne van a strict_types a default PHP file templatemben es eszre sem vettem a kulonbseget. Talan azert, mert egy normalisan felepitett PHP programban messze nincs annyi automatikus tipuskonverzio mint az ember hinne. Amikor kell a konverzio, akkor tobbnyire ugyis explicit typecastet hasznalsz, plusz ellenorzod hogy tenyleg az van-e a stringben amit varsz.

Weblaboron volt errol egy nagyobb vita nemreg. Nekem az a velemenyem, hogy PHP-ban automatikus tipuskonverziora hagyatkozni oroszrulett.

A celom ezzel a szoftverrel az, hogy az olyan embereknek segitsek, akik szigoruan tipusosan akarnak programozni. Az adott javaslatok egy resze pont abban segit, hogy a tipusossag hasznalataval kevesbe legyen bugos a kod. Nem kotelezo megfogadni oket. :)

--
Pásztor János
Sole Proprietor @ Opsbears | Development Lead @ IXOLIT | Refaktor Magazin | Refactor Zone

Arra van az IDE, beirom a kezdobetut es mar dobja is fel. PHP-ban lehet meglepoen kulturaltan programozni, de semmivel nem egyszerubb mint egy szigoruan tipusos nyelvben programozni. Ajanlott olvasmany.

Ettol fuggetlenul, van aki szeretne PHP-ban ilyen modon programozni, es vannak fejlesztok akiknek a kormet nekem kell csapkodnom es PHP-ban dolgoznak. :)

--
Pásztor János
Sole Proprietor @ Opsbears | Development Lead @ IXOLIT | Refaktor Magazin | Refactor Zone

IDE-t programozók használnak. (néhány kódra ránézve néha úgy tűnik ők se :))

Az így keletkező szemét miatt meg az üzemeltetők szívnak (szvsz ezen a szigorúan típusos előírás nem nagyon segít ;)).
Aztán bezzeg a devek szívnak amikor pl. már egy "adminer" is úgy lesz kategorizálva, mint veszélyes script. :P

Off Vicces ez a tultolt ojjektumizalas a phpben. Egy csomo mindent neki kene adni. C# utan a fejemet fogom. Kb meg 20 ev mire ott lesznek mint a c#. Megvolyan devenv is lesz.

Buek holgyeim
------------------------
Jézus reset téged