Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
SCHULER_VISENTINI_KBIDA_TARDIEU_BDD_Applications_S4
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
SCHULER Killian
SCHULER_VISENTINI_KBIDA_TARDIEU_BDD_Applications_S4
Commits
e548a35c
Commit
e548a35c
authored
Mar 10, 2020
by
VisentiniEmilien
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactor projet
parent
d86d35c1
Changes
20
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
438 additions
and
689908 deletions
+438
-689908
.gitignore
.gitignore
+6
-5
README.md
README.md
+2
-2
documentation/Thumbs.db
documentation/Thumbs.db
+0
-0
documentation/modele_relationnel.odt
documentation/modele_relationnel.odt
+0
-0
documentation/uml.png
documentation/uml.png
+0
-0
sql/request.sql
sql/request.sql
+32
-32
tp1/.htaccess
tp1/.htaccess
+19
-0
tp1/composer.json
tp1/composer.json
+13
-37
tp1/composer.lock
tp1/composer.lock
+105
-13
tp1/conf/conf.ini
tp1/conf/conf.ini
+0
-6
tp1/css/style.css
tp1/css/style.css
+0
-0
tp1/index.php
tp1/index.php
+69
-62
tp1/src/controllers/ControleurRequete.php
tp1/src/controllers/ControleurRequete.php
+42
-0
tp1/src/models/Company.php
tp1/src/models/Company.php
+13
-14
tp1/src/models/Game.php
tp1/src/models/Game.php
+14
-14
tp1/src/models/Platform.php
tp1/src/models/Platform.php
+14
-14
tp1/src/sql/games_data.sql
tp1/src/sql/games_data.sql
+0
-689451
tp1/src/sql/games_schema.sql
tp1/src/sql/games_schema.sql
+0
-191
tp1/src/views/AccueilView.php
tp1/src/views/AccueilView.php
+38
-0
tp1/src/views/RequeteView.php
tp1/src/views/RequeteView.php
+71
-67
No files found.
.gitignore
View file @
e548a35c
.idea/
.project/
tp1/src/sql/games_data.sql
tp1/src/sql/games_schema.sql
tp1/vendor/
\ No newline at end of file
*.idea/
*.project/
*games_data.sql
*games_schema.sql
*vendor/
*conf/
\ No newline at end of file
tp1/
README.md
→
README.md
View file @
e548a35c
Killian Schuler, Emilien Visentini, Vincent Kbida, Loïc Tardieu
Killian Schuler, Emilien Visentini, Vincent Kbida, Loïc Tardieu
Ceci est le dépot où sera déposé nos projets
\ No newline at end of file
tp1/
documentation/Thumbs.db
→
documentation/Thumbs.db
View file @
e548a35c
File moved
tp1/
documentation/modele_relationnel.odt
→
documentation/modele_relationnel.odt
View file @
e548a35c
File moved
tp1/
documentation/uml.png
→
documentation/uml.png
View file @
e548a35c
File moved
tp1/src/
sql/request.sql
→
sql/request.sql
View file @
e548a35c
SELECT
name
from
game
where
name
LIKE
'%Mario%'
OR
alias
LIKE
'%Mario%'
;
SELECT
name
from
company
where
location_country
LIKE
'%Japan%'
;
SELECT
name
from
platform
where
install_base
>
10000000
;
SELECT
name
from
game
order
by
name
limit
21173
,
442
;
drop
procedure
if
exists
page
;
delimiter
//
CREATE
PROCEDURE
page
(
IN
p
INT
)
BEGIN
set
p
=
(
p
-
1
)
*
500
;
SELECT
id
,
name
from
game
order
by
id
limit
p
,
500
;
END
//
SELECT
name
from
game
where
name
LIKE
'%Mario%'
OR
alias
LIKE
'%Mario%'
;
SELECT
name
from
company
where
location_country
LIKE
'%Japan%'
;
SELECT
name
from
platform
where
install_base
>
10000000
;
SELECT
name
from
game
order
by
name
limit
21173
,
442
;
drop
procedure
if
exists
page
;
delimiter
//
CREATE
PROCEDURE
page
(
IN
p
INT
)
BEGIN
set
p
=
(
p
-
1
)
*
500
;
SELECT
id
,
name
from
game
order
by
id
limit
p
,
500
;
END
//
call
page
(
2
)
\ No newline at end of file
tp1/.htaccess
0 → 100644
View file @
e548a35c
RewriteEngine
On
#
# RewriteBase indispensable sur webetu :
# RewriteBase /www/marcolet3u/php-project/
#
# Pour interdire l'accès aux répertoires contenant du code
RewriteRule
^sql(/.|)$ - [NC,F]
RewriteRule
^src(/.|)$ - [NC,F]
RewriteRule
^vendor(/.*|)$ - [NC,F]
#
# réécriture pour slim
RewriteCond
%{REQUEST_FILENAME} !-d
RewriteCond
%{REQUEST_FILENAME} !-f
RewriteRule
^ index.php [QSA,L]
\ No newline at end of file
tp1/composer.json
View file @
e548a35c
{
"name"
:
"slim/slim"
,
"type"
:
"library"
,
"description"
:
"Slim Framework, a PHP micro framework"
,
"keywords"
:
[
"microframework"
,
"rest"
,
"router"
],
"homepage"
:
"http://github.com/codeguy/Slim"
,
"license"
:
"MIT"
,
"authors"
:
[
{
"name"
:
"Killian Schuler"
,
"role"
:
"Developer"
},
{
"name"
:
"Emilien Visentini"
,
"role"
:
"Developer"
},
{
"name"
:
"Vincent Kbida"
,
"role"
:
"Developer"
},
{
"name"
:
"Loïc Tardieu"
,
"role"
:
"Developer"
}
],
"require"
:
{
"php"
:
">=7.0.0"
,
"illuminate/database"
:
"5.5.*"
},
"suggest"
:
{
"ext-mcrypt"
:
"Required for HTTP cookie encryption"
,
"phpseclib/mcrypt_compat"
:
"Polyfil for mcrypt extension"
},
"autoload"
:
{
"psr-0"
:
{
"Slim"
:
"."
}
}
}
{
"require"
:
{
"illuminate/database"
:
"5.5.*"
,
"slim/slim"
:
"2.*"
,
"php"
:
">=7.0"
},
"autoload"
:
{
"psr-4"
:
{
"bdd\\"
:
"./src"
}
}
}
\ No newline at end of file
tp1/composer.lock
View file @
e548a35c
...
...
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "
516743bf32429efd7948e30f637f15b7
",
"content-hash": "
3e70f60fac24a2aa60eedcd9ce200f65
",
"packages": [
{
"name": "doctrine/inflector",
...
...
@@ -322,6 +322,51 @@
"description": "Update helper",
"time": "2019-07-29T11:03:54+00:00"
},
{
"name": "myclabs/php-enum",
"version": "1.7.2",
"source": {
"type": "git",
"url": "https://github.com/myclabs/php-enum.git",
"reference": "45f01adf6922df6082bcda36619deb466e826acf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/myclabs/php-enum/zipball/45f01adf6922df6082bcda36619deb466e826acf",
"reference": "45f01adf6922df6082bcda36619deb466e826acf",
"shasum": ""
},
"require": {
"ext-json": "*",
"php": ">=7.1"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35|^5.7|^6.0",
"squizlabs/php_codesniffer": "1.*"
},
"type": "library",
"autoload": {
"psr-4": {
"MyCLabs\\Enum\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP Enum contributors",
"homepage": "https://github.com/myclabs/php-enum/graphs/contributors"
}
],
"description": "PHP Enum implementation",
"homepage": "http://github.com/myclabs/php-enum",
"keywords": [
"enum"
],
"time": "2019-08-19T13:53:00+00:00"
},
{
"name": "nesbot/carbon",
"version": "1.39.1",
...
...
@@ -480,18 +525,65 @@
],
"time": "2017-10-23T01:57:42+00:00"
},
{
"name": "slim/slim",
"version": "2.6.3",
"source": {
"type": "git",
"url": "https://github.com/slimphp/Slim.git",
"reference": "9224ed81ac1c412881e8d762755e3d76ebf580c0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/slimphp/Slim/zipball/9224ed81ac1c412881e8d762755e3d76ebf580c0",
"reference": "9224ed81ac1c412881e8d762755e3d76ebf580c0",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"suggest": {
"ext-mcrypt": "Required for HTTP cookie encryption",
"phpseclib/mcrypt_compat": "Polyfil for mcrypt extension"
},
"type": "library",
"autoload": {
"psr-0": {
"Slim": "."
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Josh Lockhart",
"email": "info@joshlockhart.com",
"homepage": "http://www.joshlockhart.com/"
}
],
"description": "Slim Framework, a PHP micro framework",
"homepage": "http://github.com/codeguy/Slim",
"keywords": [
"microframework",
"rest",
"router"
],
"time": "2017-01-07T12:21:41+00:00"
},
{
"name": "symfony/polyfill-mbstring",
"version": "v1.1
4.0
",
"version": "v1.1
3.1
",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "
34094cfa9abe1f0f14f48f490772db7a775559f2
"
"reference": "
7b4aab9743c30be783b73de055d24a39cf4b954f
"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/
34094cfa9abe1f0f14f48f490772db7a775559f2
",
"reference": "
34094cfa9abe1f0f14f48f490772db7a775559f2
",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/
7b4aab9743c30be783b73de055d24a39cf4b954f
",
"reference": "
7b4aab9743c30be783b73de055d24a39cf4b954f
",
"shasum": ""
},
"require": {
...
...
@@ -503,7 +595,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.1
4
-dev"
"dev-master": "1.1
3
-dev"
}
},
"autoload": {
...
...
@@ -537,20 +629,20 @@
"portable",
"shim"
],
"time": "20
20-01-13T11:15:53
+00:00"
"time": "20
19-11-27T14:18:11
+00:00"
},
{
"name": "symfony/translation",
"version": "v4.4.
4
",
"version": "v4.4.
2
",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
"reference": "f
5d2ac46930238b30a9c2f1b17c905f3697d808c
"
"reference": "f
7669f48a9633bf8139bc026c755e894b7206677
"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/f
5d2ac46930238b30a9c2f1b17c905f3697d808c
",
"reference": "f
5d2ac46930238b30a9c2f1b17c905f3697d808c
",
"url": "https://api.github.com/repos/symfony/translation/zipball/f
7669f48a9633bf8139bc026c755e894b7206677
",
"reference": "f
7669f48a9633bf8139bc026c755e894b7206677
",
"shasum": ""
},
"require": {
...
...
@@ -613,7 +705,7 @@
],
"description": "Symfony Translation Component",
"homepage": "https://symfony.com",
"time": "20
20-01-15T13:29:06
+00:00"
"time": "20
19-12-12T12:53:52
+00:00"
},
{
"name": "symfony/translation-contracts",
...
...
@@ -680,7 +772,7 @@
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
"php": ">=7.0
.0
"
"php": ">=7.0"
},
"platform-dev": []
}
tp1/conf/conf.ini
deleted
100644 → 0
View file @
d86d35c1
driver
=
mysql
username
=
root
host
=
localhost
database
=
gamepedia
charset
=
utf8mb4
collation
=
utf8mb4_general_ci
\ No newline at end of file
tp1/css/style.css
0 → 100644
View file @
e548a35c
tp1/index.php
View file @
e548a35c
<?php
require_once
'../vendor/autoload.php'
;
use
bdd\controleur\ControleurRequete
;
use
Illuminate\Database\Capsule\Manager
as
DB
;
$db
=
new
DB
();
//SI CA NE FONCTIONNE PAS, ENLEVER LES COMMENTAIRES : CES INFOS SONT DEJA DANS LE CONF.INI
//LA LIGNE DU PASSWORD NE DEVRAIT PAS ETRE NECESSAIRE CAR NOUS NOUS CONNECTONS AVEC ROOT, SINON, LA METTRE QUAND MEME
/*$db->addConnection( [
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'gamepedia',
'username' => 'user',
//'password' => 'password',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => ''
] );*/
// ajout des informations pour se connecter à la base de données
$ini_file
=
parse_ini_file
(
'../conf/conf.ini'
);
$db
->
addConnection
([
'driver'
=>
$ini_file
[
'driver'
],
'host'
=>
$ini_file
[
'host'
],
'database'
=>
$ini_file
[
'database'
],
'username'
=>
$ini_file
[
'username'
],
'password'
=>
$ini_file
[
'password'
],
'charset'
=>
$ini_file
[
'charset'
],
'collation'
=>
$ini_file
[
'charset'
]
.
'_unicode_ci'
,
'prefix'
=>
''
]);
$db
->
setAsGlobal
();
$db
->
bootEloquent
();
session_start
();
$app
=
new
Slim
();
$app
->
get
(
'/'
,
function
()
{
$v
=
new
HomeView
();
$v
->
renderHome
();
})
->
name
(
'accueil'
);
$app
->
get
(
'/ex1/requete1'
,
function
()
{
$c
=
new
ControleurRequete
();
$c
->
selectMario
();
})
->
name
(
'ex1 requete 1'
);
$app
->
get
(
'/ex1/requete2'
,
function
()
{
$c
=
new
ControleurRequete
();
})
->
name
(
'ex1 requete 2'
);
$app
->
get
(
'/ex1/requete3'
,
function
()
{
$c
=
new
ControleurRequete
();
})
->
name
(
'ex1 requete 3'
);
$app
->
get
(
'/ex1/requete4'
,
function
()
{
$c
=
new
ControleurRequete
();
})
->
name
(
'ex1 requete 4'
);
<?php
// Import de la class qui a pour but de charger tous les imports du projet
require_once
'./vendor/autoload.php'
;
// Liste des tous les imports
use
bdd\controllers\ControleurRequete
;
use
\bdd\views\AccueilView
;
use
\Illuminate\Database\Capsule\Manager
as
DB
;
use
\Slim\Slim
;
// instance de la base de données
$db
=
new
DB
();
// ajout des informations pour se connecter à la base de données
$ini_file
=
parse_ini_file
(
'src/conf/conf.ini'
);
$db
->
addConnection
([
'driver'
=>
$ini_file
[
'driver'
],
'host'
=>
$ini_file
[
'host'
],
'database'
=>
$ini_file
[
'database'
],
'username'
=>
$ini_file
[
'username'
],
'password'
=>
$ini_file
[
'password'
],
'charset'
=>
$ini_file
[
'charset'
],
'collation'
=>
$ini_file
[
'charset'
]
.
'_unicode_ci'
,
'prefix'
=>
''
]);
// demarage de la basse de donnée
$db
->
setAsGlobal
();
$db
->
bootEloquent
();
// demerage d'un session
session_start
();
// intance de slim qui a pour but de créer le rootage des urls
$app
=
new
Slim
();
/*-----|accueil|-----*/
$app
->
get
(
'/'
,
function
()
{
$v
=
new
AccueilView
();
$v
->
render
();
})
->
name
(
'accueil'
);
$app
->
get
(
'/mario'
,
function
()
{
$v
=
new
ControleurRequete
();
$v
->
selectMario
();
})
->
name
(
'mario'
);
$app
->
get
(
'/japan'
,
function
()
{
$v
=
new
ControleurRequete
();
$v
->
selectJapanCompany
();
})
->
name
(
'japan'
);
$app
->
get
(
'/platformBase'
,
function
()
{
$v
=
new
ControleurRequete
();
$v
->
selectPlatformBase
();
})
->
name
(
'platformBase'
);
$app
->
get
(
'/gameNumber'
,
function
()
{
$v
=
new
ControleurRequete
();
$v
->
selectGameNumber
();
})
->
name
(
'gameNumber'
);
$app
->
get
(
'/page/:p'
,
function
(
$p
)
{
$v
=
new
ControleurRequete
();
$v
->
selectPage
(
$p
);
})
->
name
(
'page'
);
$app
->
run
();
\ No newline at end of file
tp1/src/control
eur
/ControleurRequete.php
→
tp1/src/control
lers
/ControleurRequete.php
View file @
e548a35c
<?php
namespace
bdd\controleur
;
use
bdd\models\company
;
use
bdd\models\game
;
use
bdd\models\platform
;
class
ControleurRequete
{
public
function
selectMario
(){
$jeu
=
\bdd\models\game
::
select
(
'name'
)
->
where
(
'name'
,
'like'
,
'%Mario%'
,
'or'
,
'alias'
,
'like'
,
'%Mario%'
)
->
get
();
$vue
=
new
\bdd\vue\RequeteVue
(
$jeu
);
$html
=
$vue
->
render
(
1
);
$rs
->
getBody
()
->
write
(
$html
);
return
$rs
;
}
public
function
selectCompanyCountry
(){
$company
=
\bdd\models\company
::
select
(
'name'
)
->
where
(
'location_country'
,
'like'
,
'%Japan%'
)
->
get
();
$vue
=
new
\bdd\vue\RequeteVue
(
$company
);
$html
=
$vue
->
render
(
1
);
$rs
->
getBody
()
->
write
(
$html
);
return
$rs
;
}
public
function
selectPlatformBase
(){
$platform
=
\bdd\models\platform
::
select
(
'name'
)
->
where
(
'install_base'
,
'>'
,
'10000000'
)
->
get
();
$vue
=
new
\bdd\vue\RequeteVue
(
$platform
);
$html
=
$vue
->
render
(
1
);
$rs
->
getBody
()
->
write
(
$html
);
return
$rs
;
}
public
function
selectGameNumber
(){
$game
=
\bdd\models\game
::
select
(
'name'
)
->
orderBy
(
'name'
)
->
limit
(
'21173'
,
'422'
)
->
get
();
$vue
=
new
\bdd\vue\RequeteVue
(
$game
);
$html
=
$vue
->
render
(
1
);
$rs
->
getBody
()
->
write
(
$html
);
return
$rs
;
}
public
function
selectPage
(
$p
){
$p
=
(
$p
-
1
)
*
500
;
$jeu
=
\bdd\models\game
::
select
(
'id'
,
'name'
)
->
orderBy
(
'id'
)
->
limit
(
$p
,
'500'
)
->
get
();
$vue
=
new
\bdd\vue\RequeteVue
(
$jeu
);
$html
=
$vue
->
render
(
1
);
$rs
->
getBody
()
->
write
(
$html
);
return
$rs
;
}
<?php
namespace
bdd\controllers
;
use
bdd\models\company
;
use
bdd\models\game
;
use
bdd\models\platform
;
class
ControleurRequete
{
public
function
selectMario
(){
$jeu
=
\bdd\models\game
::
select
(
'name'
)
->
where
(
'name'
,
'like'
,
'%Mario%'
,
'or'
,
'alias'
,
'like'
,
'%Mario%'
)
->
get
();
$vue
=
new
\bdd\views\RequeteView
(
$jeu
);
$vue
->
render
(
1
);
}
public
function
selectJapanCompany
(){
$company
=
\bdd\models\company
::
select
(
'name'
)
->
where
(
'location_country'
,
'like'
,
'%Japan%'
)
->
get
();
$vue
=
new
\bdd\views\RequeteView
(
$company
);
$vue
->
render
(
1
);
}
public
function
selectPlatformBase
(){
$platform
=
\bdd\models\platform
::
select
(
'name'
)
->
where
(
'install_base'
,
'>'
,
'10000000'
)
->
get
();
$vue
=
new
\bdd\views\RequeteView
(
$platform
);
$vue
->
render
(
1
);
}
public
function
selectGameNumber
(){
$game
=
\bdd\models\game
::
select
(
'name'
)
->
orderBy
(
'name'
)
->
take
(
442
)
->
skip
(
21173
)
->
get
();
$vue
=
new
\bdd\views\RequeteView
(
$game
);
$vue
->
render
(
1
);
}
public
function
selectPage
(
$p
){
$p
=
(
$p
-
1
)
*
500
;
$jeu
=
\bdd\models\game
::
select
(
'id'
,
'name'
)
->
orderBy
(
'id'
)
->
take
(
500
)
->
skip
(
$p
)
->
get
();
$vue
=
new
\bdd\views\RequeteView
(
$jeu
);
$vue
->
render
(
1
);
}
}
\ No newline at end of file
tp1/src/model
/c
ompany.php
→
tp1/src/model
s/C
ompany.php
View file @
e548a35c
<?php
namespace
bdd\models
;
class
Company
extends
\Illuminate\Database\Eloquent\Model
{
protected
$table
=
'company'
;
protected
$primaryKey
=
'id'
;
public
$timestamps
=
false
;
public
function
platform
(){
return
$this
->
belongsTo
(
'bdd\models\company'
,
'id'
);
}
<?php
namespace
bdd\models
;
class
Company
extends
\Illuminate\Database\Eloquent\Model
{
protected
$table
=
'company'
;
protected
$primaryKey
=
'id'
;
public
$timestamps
=
false
;
public
function
platform
(){
return
$this
->
belongsTo
(
'bdd\models\company'
,
'id'
);
}
}
\ No newline at end of file
tp1/src/model
/g
ame.php
→
tp1/src/model
s/G
ame.php
View file @
e548a35c
<?php
namespace
bdd\models
;
class
Game
extends
\Illuminate\Database\Eloquent\Model
{
protected
$table
=
'game'
;
protected
$primaryKey
=
'id'
;
public
$timestamps
=
false
;
public
function
platform
(){
return
$this
->
belongsTo
(
'bdd\models\game'
,
'id'
);
}
<?php
namespace
bdd\models
;
class
Game
extends
\Illuminate\Database\Eloquent\Model
{
protected
$table
=
'game'
;
protected
$primaryKey
=
'id'
;
public
$timestamps
=
false
;
public
function
platform
(){
return
$this
->
belongsTo
(
'bdd\models\game'
,
'id'
);
}
}
\ No newline at end of file
tp1/src/model
/p
latform.php
→
tp1/src/model
s/P
latform.php
View file @
e548a35c
<?php
namespace
bdd\models
;
class
Platform
extends
\Illuminate\Database\Eloquent\Model
{
protected
$table
=
'platform'
;
protected
$primaryKey
=
'id'
;
public
$timestamps
=
false
;
public
function
platform
(){
return
$this
->
belongsTo
(
'bdd\models\platform'
,
'id'
);