1 | <?php |
||||||
2 | |||||||
3 | namespace Nip\Database; |
||||||
4 | |||||||
5 | use Nip\Database\Connections\Connection; |
||||||
0 ignored issues
–
show
|
|||||||
6 | |||||||
7 | /** |
||||||
8 | * Class Manager. |
||||||
9 | * @deprecated use \Nip\Database\DatabaseManager |
||||||
10 | */ |
||||||
11 | class Manager extends DatabaseManager |
||||||
12 | { |
||||||
13 | /** |
||||||
14 | * @param $config |
||||||
15 | * |
||||||
16 | * @return Connection |
||||||
17 | */ |
||||||
18 | public function newConnectionFromConfig($config) |
||||||
19 | { |
||||||
20 | $connection = $this->createNewConnection( |
||||||
21 | $config->adapter, |
||||||
22 | $config->host, |
||||||
23 | $config->user, |
||||||
24 | $config->password, |
||||||
25 | $config->name |
||||||
26 | ); |
||||||
27 | |||||||
28 | return $connection; |
||||||
29 | } |
||||||
30 | |||||||
31 | /** |
||||||
32 | * @param $adapter |
||||||
33 | * @param $host |
||||||
34 | * @param $user |
||||||
35 | * @param $password |
||||||
36 | * @param $database |
||||||
37 | * |
||||||
38 | * @return Connection |
||||||
39 | */ |
||||||
40 | public function createNewConnection($adapter, $host, $user, $password, $database) |
||||||
41 | { |
||||||
42 | try { |
||||||
43 | $connection = $this->newConnection(); |
||||||
44 | |||||||
45 | $adapter = $connection->newAdapter($adapter); |
||||||
46 | $connection->setAdapter($adapter); |
||||||
47 | |||||||
48 | $connection->connect($host, $user, $password, $database); |
||||||
49 | $this->initNewConnection($connection); |
||||||
50 | } catch (Exception $e) { |
||||||
51 | echo '<h1>Error connecting to database</h1>'; |
||||||
52 | if (app()->get('staging')->getStage()->inTesting()) { |
||||||
53 | echo '<h4>' . $e->getMessage() . '</h4>'; |
||||||
54 | $e->log(); |
||||||
0 ignored issues
–
show
The method
log() does not exist on Nip\Database\Exception .
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces. This is most likely a typographical error or the method has been renamed. ![]() |
|||||||
55 | } |
||||||
56 | die(); |
||||||
0 ignored issues
–
show
|
|||||||
57 | } |
||||||
58 | |||||||
59 | return $connection; |
||||||
60 | } |
||||||
61 | |||||||
62 | /** |
||||||
63 | * @param $connection |
||||||
64 | */ |
||||||
65 | public function initNewConnection($connection) |
||||||
66 | { |
||||||
67 | if ($this->getBootstrap()->getDebugBar()->isEnabled()) { |
||||||
68 | $this->getBootstrap()->getDebugBar()->initDatabaseAdapter($connection->getAdapter()); |
||||||
69 | } |
||||||
70 | } |
||||||
71 | |||||||
72 | /** |
||||||
73 | * @return Connection |
||||||
74 | */ |
||||||
75 | public function newConnection() |
||||||
76 | { |
||||||
77 | return new Connection(false); |
||||||
0 ignored issues
–
show
false of type false is incompatible with the type Closure|PDO expected by parameter $pdo of Nip\Database\Connections\Connection::__construct() .
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() |
|||||||
78 | } |
||||||
79 | } |
||||||
80 |
Let?s assume that you have a directory layout like this:
and let?s assume the following content of
Bar.php
:If both files
OtherDir/Foo.php
andSomeDir/Foo.php
are loaded in the same runtime, you will see a PHP error such as the following:PHP Fatal error: Cannot use SomeDir\Foo as Foo because the name is already in use in OtherDir/Foo.php
However, as
OtherDir/Foo.php
does not necessarily have to be loaded and the error is only triggered if it is loaded beforeOtherDir/Bar.php
, this problem might go unnoticed for a while. In order to prevent this error from surfacing, you must import the namespace with a different alias: