bytic /
database
| 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. Loading history...
|
|||||||
| 55 | } |
||||||
| 56 | die(); |
||||||
| 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
Loading history...
|
|||||||
| 78 | } |
||||||
| 79 | } |
||||||
| 80 |
Let?s assume that you have a directory layout like this:
. |-- OtherDir | |-- Bar.php | `-- Foo.php `-- SomeDir `-- Foo.phpand let?s assume the following content of
Bar.php:If both files
OtherDir/Foo.phpandSomeDir/Foo.phpare 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.phpHowever, as
OtherDir/Foo.phpdoes 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: