Skip to content

Commit 818420c

Browse files
committed
Strict types, example, autoload without composer.
1 parent 1131c12 commit 818420c

File tree

3 files changed

+22
-3
lines changed

3 files changed

+22
-3
lines changed

autoload.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
<?php
2+
require __DIR__ . '/src/wsdlVNif.php';

example.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
require __DIR__ . '/autoload.php';
3+
4+
use Fawno\AEAT\wsdlVNif;
5+
6+
$nif = '50869902C';
7+
$result = wsdlVNif::nif_validation($nif) ? 'Valid' : 'Invalid';
8+
echo sprintf('%s is %s', $nif, $result), PHP_EOL;
9+
10+
$nif = 'B13384599';
11+
$result = wsdlVNif::nif_validation($nif) ? 'Valid' : 'Invalid';
12+
echo sprintf('%s is %s', $nif, $result), PHP_EOL;
13+
14+
$nif = 'X2600858H';
15+
$result = wsdlVNif::nif_validation($nif) ? 'Valid' : 'Invalid';
16+
echo sprintf('%s is %s', $nif, $result), PHP_EOL;

src/wsdlVNif.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
@copyright Copyright 2018, Fawno (https://github.com/fawno)
99
@license MIT License (http://www.opensource.org/licenses/mit-license.php)
1010
*/
11+
declare(strict_types=1);
1112

1213
namespace Fawno\AEAT;
1314

@@ -70,7 +71,7 @@ public function VNifV2 ($contribuyentes) {
7071
return $this->__soapCall('VNifV2', [['Contribuyente' => $contribuyentes]]);
7172
}
7273

73-
public static function nif_validation ($nif) {
74+
public static function nif_validation (string $nif) : bool {
7475
if (preg_match('~(ES)?([\w\d]{9})~', strtoupper($nif), $parts)) {
7576
$nif = end($parts);
7677
if (preg_match('~(^[XYZ\d]\d{7})([TRWAGMYFPDXBNJZSQVHLCKE]$)~', $nif, $parts)) {
@@ -82,15 +83,15 @@ public static function nif_validation ($nif) {
8283
} elseif (preg_match('~(^[ABCDEFGHIJKLMUV])(\d{7})(\d$)~', $nif, $parts)) {
8384
$checksum = 0;
8485
foreach (str_split($parts[2]) as $pos => $val) {
85-
$checksum += array_sum(str_split($val * (2 - ($pos % 2))));
86+
$checksum += array_sum(str_split((string) ($val * (2 - ($pos % 2)))));
8687
}
8788
$checksum = ((10 - ($checksum % 10)) % 10);
8889
return ($parts[3] == $checksum);
8990
} elseif (preg_match('~(^[KLMNPQRSW])(\d{7})([JABCDEFGHI]$)~', $nif, $parts)) {
9091
$control = 'JABCDEFGHI';
9192
$checksum = 0;
9293
foreach (str_split($parts[2]) as $pos => $val) {
93-
$checksum += array_sum(str_split($val * (2 - ($pos % 2))));
94+
$checksum += array_sum(str_split((string) ($val * (2 - ($pos % 2)))));
9495
}
9596
$checksum = substr($control, ((10 - ($checksum % 10)) % 10), 1);
9697
return ($parts[3] == $checksum);

0 commit comments

Comments
 (0)