Skip to content

Commit 444d26c

Browse files
committed
changes to support geo
1 parent dfbe88d commit 444d26c

37 files changed

+89
-228
lines changed

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Use 3.* for Laravel 5.2.*
2424

2525
Next add the DatabaseServiceProvider to your `config/app.php` file.
2626

27-
'Phaza\LaravelPostgis\DatabaseServiceProvider',
27+
'Mammutgroup\LaravelPostgis\DatabaseServiceProvider',
2828

2929
That's all.
3030

@@ -52,7 +52,7 @@ Open the created migrations with your editor.
5252

5353
```PHP
5454
use Illuminate\Database\Migrations\Migration;
55-
use Phaza\LaravelPostgis\Schema\Blueprint;
55+
use Mammutgroup\LaravelPostgis\Schema\Blueprint;
5656

5757
class CreateLocationsTable extends Migration {
5858

@@ -111,8 +111,8 @@ what attributes/columns on your model are to be considered geometry objects.
111111

112112
```PHP
113113
use Illuminate\Database\Eloquent\Model;
114-
use Phaza\LaravelPostgis\Eloquent\PostgisTrait;
115-
use Phaza\LaravelPostgis\Geometries\Point;
114+
use Mammutgroup\LaravelPostgis\Eloquent\PostgisTrait;
115+
use Mammutgroup\LaravelPostgis\Geometries\Point;
116116

117117
class Location extends Model
118118
{

src/Connectors/ConnectionFactory.php

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
<?php namespace Phaza\LaravelPostgis\Connectors;
1+
<?php namespace Mammutgroup\LaravelPostgis\Connectors;
22

33
use PDO;
4-
use Phaza\LaravelPostgis\PostgisConnection;
4+
use Mammutgroup\LaravelPostgis\PostgisConnection;
55

66
class ConnectionFactory extends \Bosnadev\Database\Connectors\ConnectionFactory
77
{
@@ -15,11 +15,7 @@ class ConnectionFactory extends \Bosnadev\Database\Connectors\ConnectionFactory
1515
*/
1616
protected function createConnection($driver, $connection, $database, $prefix = '', array $config = [])
1717
{
18-
if ($this->container->bound($key = "db.connection.{$driver}")) {
19-
return $this->container->make($key, [$connection, $database, $prefix, $config]);
20-
}
21-
22-
if ($driver === 'pgsql') {
18+
if ($driver === 'mysql') {
2319
return new PostgisConnection($connection, $database, $prefix, $config);
2420
}
2521

src/DatabaseServiceProvider.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
<?php namespace Phaza\LaravelPostgis;
1+
<?php namespace Mammutgroup\LaravelPostgis;
22

33
use Illuminate\Database\DatabaseManager;
4-
use Phaza\LaravelPostgis\Connectors\ConnectionFactory;
4+
use Mammutgroup\LaravelPostgis\Connectors\ConnectionFactory;
55
use Bosnadev\Database\DatabaseServiceProvider as PostgresDatabaseServiceProvider;
66

77
/**
88
* Class DatabaseServiceProvider
9-
* @package Phaza\LaravelPostgis
9+
* @package Mammutgroup\LaravelPostgis
1010
*/
1111
class DatabaseServiceProvider extends PostgresDatabaseServiceProvider
1212
{

src/Eloquent/Builder.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
<?php namespace Phaza\LaravelPostgis\Eloquent;
1+
<?php namespace Mammutgroup\LaravelPostgis\Eloquent;
22

33
use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
4-
use Phaza\LaravelPostgis\Geometries\GeometryInterface;
4+
use Mammutgroup\LaravelPostgis\Geometries\GeometryInterface;
55

66
class Builder extends EloquentBuilder
77
{

src/Eloquent/PostgisTrait.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
<?php namespace Phaza\LaravelPostgis\Eloquent;
1+
<?php namespace Mammutgroup\LaravelPostgis\Eloquent;
22

33
use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
44
use Illuminate\Support\Arr;
5-
use Phaza\LaravelPostgis\Exceptions\PostgisFieldsNotDefinedException;
6-
use Phaza\LaravelPostgis\Geometries\Geometry;
7-
use Phaza\LaravelPostgis\Geometries\GeometryInterface;
5+
use Mammutgroup\LaravelPostgis\Exceptions\PostgisFieldsNotDefinedException;
6+
use Mammutgroup\LaravelPostgis\Geometries\Geometry;
7+
use Mammutgroup\LaravelPostgis\Geometries\GeometryInterface;
88

99
trait PostgisTrait
1010
{
@@ -14,7 +14,7 @@ trait PostgisTrait
1414
* Create a new Eloquent query builder for the model.
1515
*
1616
* @param \Illuminate\Database\Query\Builder $query
17-
* @return \Phaza\LaravelPostgis\Eloquent\Builder
17+
* @return \Mammutgroup\LaravelPostgis\Eloquent\Builder
1818
*/
1919
public function newEloquentBuilder($query)
2020
{

src/Exceptions/PostgisFieldsNotDefinedException.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?php namespace Phaza\LaravelPostgis\Exceptions;
1+
<?php namespace Mammutgroup\LaravelPostgis\Exceptions;
22

33
use RuntimeException;
44

src/Exceptions/UnknownWKTTypeException.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?php namespace Phaza\LaravelPostgis\Exceptions;
1+
<?php namespace Mammutgroup\LaravelPostgis\Exceptions;
22

33
use RuntimeException;
44

src/Geometries/Factory.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?php namespace Phaza\LaravelPostgis\Geometries;
1+
<?php namespace Mammutgroup\LaravelPostgis\Geometries;
22

33
class Factory implements \GeoIO\Factory {
44
public function createPoint( $dimension, array $coordinates, $srid = null )

src/Geometries/Geometry.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
<?php namespace Phaza\LaravelPostgis\Geometries;
1+
<?php namespace Mammutgroup\LaravelPostgis\Geometries;
22

33
use GeoIO\WKB\Parser\Parser;
4-
use Phaza\LaravelPostgis\Exceptions\UnknownWKTTypeException;
4+
use Mammutgroup\LaravelPostgis\Exceptions\UnknownWKTTypeException;
55

66
abstract class Geometry implements GeometryInterface, \JsonSerializable
77
{

src/Geometries/GeometryCollection.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?php namespace Phaza\LaravelPostgis\Geometries;
1+
<?php namespace Mammutgroup\LaravelPostgis\Geometries;
22

33
use Countable;
44
use GeoJson\GeoJson;

src/Geometries/GeometryInterface.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?php namespace Phaza\LaravelPostgis\Geometries;
1+
<?php namespace Mammutgroup\LaravelPostgis\Geometries;
22

33
interface GeometryInterface
44
{

src/Geometries/LineString.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?php namespace Phaza\LaravelPostgis\Geometries;
1+
<?php namespace Mammutgroup\LaravelPostgis\Geometries;
22

33
class LineString extends PointCollection implements GeometryInterface
44
{

src/Geometries/MultiLineString.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?php namespace Phaza\LaravelPostgis\Geometries;
1+
<?php namespace Mammutgroup\LaravelPostgis\Geometries;
22

33
use Countable;
44
use InvalidArgumentException;

src/Geometries/MultiPoint.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?php namespace Phaza\LaravelPostgis\Geometries;
1+
<?php namespace Mammutgroup\LaravelPostgis\Geometries;
22

33
class MultiPoint extends PointCollection implements GeometryInterface, \JsonSerializable
44
{

src/Geometries/MultiPolygon.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?php namespace Phaza\LaravelPostgis\Geometries;
1+
<?php namespace Mammutgroup\LaravelPostgis\Geometries;
22

33
use Countable;
44
use InvalidArgumentException;

src/Geometries/Point.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?php namespace Phaza\LaravelPostgis\Geometries;
1+
<?php namespace Mammutgroup\LaravelPostgis\Geometries;
22

33
use GeoJson\GeoJson;
44

src/Geometries/PointCollection.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?php namespace Phaza\LaravelPostgis\Geometries;
1+
<?php namespace Mammutgroup\LaravelPostgis\Geometries;
22

33
use ArrayAccess;
44
use ArrayIterator;

src/Geometries/Polygon.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?php namespace Phaza\LaravelPostgis\Geometries;
1+
<?php namespace Mammutgroup\LaravelPostgis\Geometries;
22

33
use Countable;
44

src/PostgisConnection.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
<?php namespace Phaza\LaravelPostgis;
1+
<?php namespace Mammutgroup\LaravelPostgis;
22

3-
class PostgisConnection extends \Bosnadev\Database\PostgresConnection
3+
4+
class PostgisConnection extends \Bosnadev\Database\MysqlConnection
45
{
56
/**
67
* Get the default schema grammar instance.
@@ -21,4 +22,9 @@ public function getSchemaBuilder()
2122

2223
return new Schema\Builder($this);
2324
}
25+
26+
protected function getDefaultQueryGrammar()
27+
{
28+
return $this->withTablePrefix(new \Illuminate\Database\Query\Grammars\MySqlGrammar);
29+
}
2430
}

src/Schema/Blueprint.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?php namespace Phaza\LaravelPostgis\Schema;
1+
<?php namespace Mammutgroup\LaravelPostgis\Schema;
22

33
class Blueprint extends \Bosnadev\Database\Schema\Blueprint
44
{

src/Schema/Builder.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?php namespace Phaza\LaravelPostgis\Schema;
1+
<?php namespace Mammutgroup\LaravelPostgis\Schema;
22

33
use Closure;
44

Lines changed: 3 additions & 144 deletions
Original file line numberDiff line numberDiff line change
@@ -1,148 +1,7 @@
1-
<?php namespace Phaza\LaravelPostgis\Schema\Grammars;
1+
<?php namespace Mammutgroup\LaravelPostgis\Schema\Grammars;
22

3-
use Illuminate\Support\Fluent;
4-
use Phaza\LaravelPostgis\Schema\Blueprint;
5-
use Bosnadev\Database\Schema\Grammars\PostgresGrammar;
3+
use Bosnadev\Database\Schema\Grammars\MysqlGrammar;
64

7-
class PostgisGrammar extends PostgresGrammar
5+
class PostgisGrammar extends MysqlGrammar
86
{
9-
/**
10-
* Adds a statement to add a point geometry column
11-
*
12-
* @param \Illuminate\Support\Fluent $column
13-
* @return string
14-
*/
15-
public function typePoint(Fluent $column)
16-
{
17-
return 'GEOGRAPHY(POINT, 4326)';
18-
}
19-
20-
/**
21-
* Adds a statement to add a point geometry column
22-
*
23-
* @param \Illuminate\Support\Fluent $column
24-
* @return string
25-
*/
26-
public function typeMultipoint(Fluent $column)
27-
{
28-
return 'GEOGRAPHY(MULTIPOINT, 4326)';
29-
}
30-
31-
/**
32-
* Adds a statement to add a polygon geometry column
33-
*
34-
* @param \Illuminate\Support\Fluent $column
35-
* @return string
36-
*/
37-
public function typePolygon(Fluent $column)
38-
{
39-
return 'GEOGRAPHY(POLYGON, 4326)';
40-
}
41-
42-
/**
43-
* Adds a statement to add a multipolygon geometry column
44-
*
45-
* @param \Illuminate\Support\Fluent $column
46-
* @return string
47-
*/
48-
public function typeMultipolygon(Fluent $column)
49-
{
50-
return 'GEOGRAPHY(MULTIPOLYGON, 4326)';
51-
}
52-
53-
/**
54-
* Adds a statement to add a linestring geometry column
55-
*
56-
* @param \Illuminate\Support\Fluent $column
57-
* @return string
58-
*/
59-
public function typeLinestring(Fluent $column)
60-
{
61-
return 'GEOGRAPHY(LINESTRING, 4326)';
62-
}
63-
64-
/**
65-
* Adds a statement to add a multilinestring geometry column
66-
*
67-
* @param \Illuminate\Support\Fluent $column
68-
* @return string
69-
*/
70-
public function typeMultilinestring(Fluent $column)
71-
{
72-
return 'GEOGRAPHY(MULTILINESTRING, 4326)';
73-
}
74-
75-
/**
76-
* Adds a statement to add a linestring geometry column
77-
*
78-
* @param \Illuminate\Support\Fluent $column
79-
* @return string
80-
*/
81-
public function typeGeography(Fluent $column)
82-
{
83-
return 'GEOGRAPHY';
84-
}
85-
86-
/**
87-
* Adds a statement to add a geometrycollection geometry column
88-
*
89-
* @param Blueprint $blueprint
90-
* @param Fluent $command
91-
* @return string
92-
*/
93-
public function compileGeometrycollection(Blueprint $blueprint, Fluent $command)
94-
{
95-
$command->type = 'GEOMETRYCOLLECTION';
96-
97-
return $this->compileGeometry($blueprint, $command);
98-
}
99-
100-
/**
101-
* Adds a statement to create the postgis extension
102-
*
103-
* @param Blueprint $blueprint
104-
* @param Fluent $command
105-
* @return string
106-
*/
107-
public function compileEnablePostgis(Blueprint $blueprint, Fluent $command)
108-
{
109-
return 'CREATE EXTENSION postgis';
110-
}
111-
112-
/**
113-
* Adds a statement to drop the postgis extension
114-
*
115-
* @param Blueprint $blueprint
116-
* @param Fluent $command
117-
* @return string
118-
*/
119-
public function compileDisablePostgis(Blueprint $blueprint, Fluent $command)
120-
{
121-
return 'DROP EXTENSION postgis';
122-
}
123-
124-
/**
125-
* Adds a statement to add a geometry column
126-
*
127-
* @param Blueprint $blueprint
128-
* @param Fluent $command
129-
* @return string
130-
*/
131-
protected function compileGeometry(Blueprint $blueprint, Fluent $command)
132-
{
133-
134-
$dimensions = $command->dimensions ?: 2;
135-
$typmod = $command->typmod ? 'true' : 'false';
136-
$srid = $command->srid ?: 4326;
137-
138-
return sprintf(
139-
"SELECT AddGeometryColumn('%s', '%s', %d, '%s', %d, %s)",
140-
$blueprint->getTable(),
141-
$command->column,
142-
$srid,
143-
strtoupper($command->type),
144-
$dimensions,
145-
$typmod
146-
);
147-
}
1487
}

tests/Connectors/ConnectionFactoryTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?php
22

33
use Illuminate\Container\Container;
4-
use Phaza\LaravelPostgis\Connectors\ConnectionFactory;
5-
use Phaza\LaravelPostgis\PostgisConnection;
4+
use Mammutgroup\LaravelPostgis\Connectors\ConnectionFactory;
5+
use Mammutgroup\LaravelPostgis\PostgisConnection;
66
use Stubs\PDOStub;
77

88
class ConnectionFactoryBaseTest extends BaseTestCase

tests/Eloquent/BuilderTest.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
use Illuminate\Database\Query\Builder as QueryBuilder;
66
use Illuminate\Database\Query\Expression;
77
use Mockery as m;
8-
use Phaza\LaravelPostgis\Eloquent\Builder;
9-
use Phaza\LaravelPostgis\Eloquent\PostgisTrait;
10-
use Phaza\LaravelPostgis\Geometries\LineString;
11-
use Phaza\LaravelPostgis\Geometries\Point;
12-
use Phaza\LaravelPostgis\Geometries\Polygon;
8+
use Mammutgroup\LaravelPostgis\Eloquent\Builder;
9+
use Mammutgroup\LaravelPostgis\Eloquent\PostgisTrait;
10+
use Mammutgroup\LaravelPostgis\Geometries\LineString;
11+
use Mammutgroup\LaravelPostgis\Geometries\Point;
12+
use Mammutgroup\LaravelPostgis\Geometries\Polygon;
1313

1414
class BuilderTest extends BaseTestCase
1515
{

0 commit comments

Comments
 (0)