You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I will create new class with this php funcions what return two value and make it strictly like this. But here is need only fopen, fwrite and stream_get_contents.
And create own excenption instead of global RuntimeException.
------ ---------------------------------------------------------------------------------------------------------------------------------
Line src/FileSystem/FileSystem.php
------ ---------------------------------------------------------------------------------------------------------------------------------
29 Method PiPHP\GPIO\FileSystem\FileSystem::getContents() should return string but returns resource.
29 Parameter #1 $result of method PiPHP\GPIO\FileSystem\FileSystem::exceptionIfFalse() expects resource|false, string|false given.
42 Method PiPHP\GPIO\FileSystem\FileSystem::putContents() should return int but returns resource.
42 Parameter #1 $result of method PiPHP\GPIO\FileSystem\FileSystem::exceptionIfFalse() expects resource|false, int|false given.
53 Offset 'message' does not exist on array('type' => int, 'message' => string, 'file' => string, 'line' => int)|null.
------ ---------------------------------------------------------------------------------------------------------------------------------
2 php typehint
Here are two way, make it strtly by php typehint or for this moment only by annotation. I'm vote for first choice and support with php 7.3+, it will be BC break. Here is opended PR #38
------ ---------------------------------------------------------------------------------------------------
Line src/GPIO.php
------ ---------------------------------------------------------------------------------------------------
14 Property PiPHP\GPIO\GPIO::$fileSystem has no typehint specified.
15 Property PiPHP\GPIO\GPIO::$streamSelect has no typehint specified.
40 Method PiPHP\GPIO\GPIO::getOutputPin() has parameter $exportDirection with no typehint specified.
------ ---------------------------------------------------------------------------------------------------
------ ----------------------------------------------------------------------------------------------
Line src/Interrupt/InterruptWatcher.php
------ ----------------------------------------------------------------------------------------------
10 Property PiPHP\GPIO\Interrupt\InterruptWatcher::$fileSystem has no typehint specified.
11 Property PiPHP\GPIO\Interrupt\InterruptWatcher::$streamSelect has no typehint specified.
12 Property PiPHP\GPIO\Interrupt\InterruptWatcher::$streams has no typehint specified.
13 Property PiPHP\GPIO\Interrupt\InterruptWatcher::$pins has no typehint specified.
14 Property PiPHP\GPIO\Interrupt\InterruptWatcher::$callbacks has no typehint specified.
43 Method PiPHP\GPIO\Interrupt\InterruptWatcher::register() has no return typehint specified.
62 Method PiPHP\GPIO\Interrupt\InterruptWatcher::unregister() has no return typehint specified.
78 Method PiPHP\GPIO\Interrupt\InterruptWatcher::watch() has no return typehint specified.
------ ----------------------------------------------------------------------------------------------
------ -------------------------------------------------------------------------------------------------------
Line src/Interrupt/InterruptWatcherInterface.php
------ -------------------------------------------------------------------------------------------------------
15 Method PiPHP\GPIO\Interrupt\InterruptWatcherInterface::register() has no return typehint specified.
22 Method PiPHP\GPIO\Interrupt\InterruptWatcherInterface::unregister() has no return typehint specified.
29 Method PiPHP\GPIO\Interrupt\InterruptWatcherInterface::watch() has no return typehint specified.
------ -------------------------------------------------------------------------------------------------------
------ -----------------------------------------------------------------------------
Line src/Pin/InputPin.php
------ -----------------------------------------------------------------------------
36 Method PiPHP\GPIO\Pin\InputPin::setEdge() has no return typehint specified.
------ -----------------------------------------------------------------------------
------ --------------------------------------------------------------------------------------
Line src/Pin/InputPinInterface.php
------ --------------------------------------------------------------------------------------
24 Method PiPHP\GPIO\Pin\InputPinInterface::setEdge() has no return typehint specified.
------ --------------------------------------------------------------------------------------
------ -----------------------------------------------------------------------------------------------------------
Line src/Pin/OutputPin.php
------ -----------------------------------------------------------------------------------------------------------
15 Method PiPHP\GPIO\Pin\OutputPin::__construct() has parameter $exportDirection with no typehint specified.
31 Method PiPHP\GPIO\Pin\OutputPin::setValue() has no return typehint specified.
------ -----------------------------------------------------------------------------------------------------------
------ ----------------------------------------------------------------------------------------
Line src/Pin/OutputPinInterface.php
------ ----------------------------------------------------------------------------------------
12 Method PiPHP\GPIO\Pin\OutputPinInterface::setValue() has no return typehint specified.
------ ----------------------------------------------------------------------------------------
------ ------------------------------------------------------------------------------------------------
Line src/Pin/Pin.php
------ ------------------------------------------------------------------------------------------------
27 Property PiPHP\GPIO\Pin\Pin::$fileSystem has no typehint specified.
28 Property PiPHP\GPIO\Pin\Pin::$number has no typehint specified.
30 Property PiPHP\GPIO\Pin\Pin::$exported has no typehint specified.
57 Method PiPHP\GPIO\Pin\Pin::export() has no return typehint specified.
72 Method PiPHP\GPIO\Pin\Pin::unexport() has no return typehint specified.
82 Method PiPHP\GPIO\Pin\Pin::isExported() has no return typehint specified.
92 Method PiPHP\GPIO\Pin\Pin::getDirection() has no return typehint specified.
106 Method PiPHP\GPIO\Pin\Pin::setDirection() has no return typehint specified.
106 Method PiPHP\GPIO\Pin\Pin::setDirection() has parameter $direction with no typehint specified.
163 Method PiPHP\GPIO\Pin\Pin::writePinNumberToFile() has no return typehint specified.
------ ------------------------------------------------------------------------------------------------
------ ----------------------------------------------------------------------------------
Line src/Pin/PinInterface.php
------ ----------------------------------------------------------------------------------
20 Method PiPHP\GPIO\Pin\PinInterface::export() has no return typehint specified.
25 Method PiPHP\GPIO\Pin\PinInterface::unexport() has no return typehint specified.
------ ----------------------------------------------------------------------------------
------ ------------------------------------------------------------------------------------------------------
Line test/FileSystem/FileSystemTest.php
------ ------------------------------------------------------------------------------------------------------
11 Method PiPHP\Test\GPIO\FileSystem\FileSystemTest::testFileSystem() has no return typehint specified.
34 Method PiPHP\Test\GPIO\FileSystem\FileSystemTest::testBadFile() has no return typehint specified.
------ ------------------------------------------------------------------------------------------------------
------ ----------------------------------------------------------------------------------------------------------------
Line test/Pin/OutputPinTest.php
------ ----------------------------------------------------------------------------------------------------------------
12 Method PiPHP\Test\GPIO\Pin\OutputPinTest::testOutputPin() has no return typehint specified.
28 Method PiPHP\Test\GPIO\Pin\OutputPinTest::testOutputPinIsNotDoubleExported() has no return typehint specified.
------ ----------------------------------------------------------------------------------------------------------------
------ -------------------------------------------------------------------------------------------
Line test/Pin/InputPinTest.php
------ -------------------------------------------------------------------------------------------
11 Method PiPHP\Test\GPIO\Pin\InputPinTest::testInputPin() has no return typehint specified.
------ -------------------------------------------------------------------------------------------
3 fix tests
Tests have specific errors. I will fix it at last.
------ ---------------------------------------------------------------------------------------------------------
Line test/FileSystem/VFS.php
------ ---------------------------------------------------------------------------------------------------------
9 Property PiPHP\Test\GPIO\FileSystem\VFS::$vfs has no typehint specified.
11 Method PiPHP\Test\GPIO\FileSystem\VFS::open() should return resource but return statement is missing.
22 Method PiPHP\Test\GPIO\FileSystem\VFS::putContents() should return int but return statement is missing.
30 Parameter #2 $subject of function preg_match expects string, int|string given.
------ ---------------------------------------------------------------------------------------------------------
------ ----------------------------------------------------------------------------------------------
Line test/Interrupt/InterruptWatcherTest.php
------ ----------------------------------------------------------------------------------------------
11 Method PiPHP\Test\GPIO\InterruptWatcherTest::testWatcher() has no return typehint specified.
17 Cannot access offset 1 on array<resource>|false.
18 Cannot access offset 1 on array<resource>|false.
27 Cannot access offset 0 on array<resource>|false.
28 Cannot access offset 0 on array<resource>|false.
69 Cannot access offset 1 on array<resource>|false.
72 Cannot access offset 1 on array<resource>|false.
73 Cannot access offset 1 on array<resource>|false.
79 Cannot access offset 1 on array<resource>|false.
86 Cannot access offset 1 on array<resource>|false.
87 Cannot access offset 1 on array<resource>|false.
------ ----------------------------------------------------------------------------------------------
The text was updated successfully, but these errors were encountered:
Hello,
i try add static analyse tool phpstan to project and here is output and choise what to do.
Here is commit where are changes https://github.com/h4kuna/GPIO/commit/93fa0c099d61d0a9fb9b2e3eb97032034ecfef8e run it by
./test/phpstan
.1 strict php functions
I will create new class with this php funcions what return two value and make it strictly like this. But here is need only
fopen
,fwrite
andstream_get_contents
.And create own excenption instead of global RuntimeException.
2 php typehint
Here are two way, make it strtly by php typehint or for this moment only by annotation. I'm vote for first choice and support with php 7.3+, it will be BC break. Here is opended PR #38
3 fix tests
Tests have specific errors. I will fix it at last.
The text was updated successfully, but these errors were encountered: