Loading...
Обучение/Помощь новичкам | Оцените пожалуйста
Учу PHP меньше месяца , практикую , читабельный код?

Файл pit.box.php

php
   <?php 

class pit
{

// const PLAYER_FREE_AP = 10; // Бесплатное кормление


// узнать количество очков силы
public static function get_satiety($id_user)
{
$sql = 'select satiety from pit where id_user = ? limit 1';
$sth = db::$pdo->prepare($sql);
$sth->execute([$id_user]);
return $sth->fetch(PDO::FETCH_NUM)[0];
}

// создать запись с игроком
public static function player_create($id_user)
{
$sql = 'insert into pit set id_user = ?';
$sth = db::$pdo->prepare($sql);
$sth->execute([$id_user]);
}

// проверить есть ли запись с игроком
public static function is_player($id_user)
{
$sql = 'select count(*) from pit where id_user = ? limit 1';
$sth = db::$pdo->prepare($sql);
$sth->execute([$id_user]);
if ($sth->fetch(PDO::FETCH_NUM)[0] > 0) {
return true;
}
return false;
}

// добавить очки силы
public static function set_satiety($num, $id_user)
{
$sql = 'update pit set satiety = satiety + ? where id = ? limit 1';
$sth = db::$pdo->prepare($sql);
$sth->execute([$num, $id_user]);
}

// контроллер игрока
public static function player_ctrl()
{
$id_user = ID;
if (!self::is_player($id_user)) { // если записи с игроком нет
self::player_create($id_user);
}
}
// контроллер кормления
public static function satiety_ctrl($korm)
{
$id_user = ID;

if (get_mutagen_by_id($id_user) >= $korm ) {//Если достаточно мутагена
self::set_satiety($korm, $id_user);
set_mutagen(- $korm,$id_user);
}
}
}



class pit_model
{
public function get()
{
$satiety = pit::get_satiety(ID);


return [
'satiety' => $satiety
];
}
}



Файл pit.php
php
   <?php 

require_once(ROOT . 'project/internal/core.php'); // грузим ядро

pit::player_ctrl();

$act = '';
if ( ! empty($_GET['korm'])) {
$act = $_GET['korm'];
}

if ($act == '1' || $act == '5' || $act =='15') {
pit::satiety_ctrl($act);

// что бы при перезагркзеи страницы не повторялся код
redirect::go()->ruler_cut('korm');
}


view('tpl/cap');
view('tpl/header');
view('tpl/header-enter');
view('pit', (new pit_model)->get());
view('tpl/footer-enter');
view('tpl/footer');


Изображение

------
79921_Screenshot_20211127231517354_com.android.chrome.jpg (512.8 Kb)
Скачиваний: 127

________
посл. ред. 27.11.2021 в 23:15; всего 5 раз(а); by 213731682
213731682 , для начала пойдет:) я бы сделал функции которые выполняются в нутри класса приватными.
Почему выбрал именно функциональный подход?
Simptom333 (28.11.2021 в 00:26)
Почему выбрал именно функциональный подход?

Это называется метод, а не функция
Классы лучше всегда с большой буквы делать :)
И юзай лучше orm, удобнее и безопаснее
Avenax , По такой логин объективный подход не объект, а метод.
Simptom333 (28.11.2021 в 11:09)
Avenax , По такой логин объективный подход не объект, а метод.

Что?
Avenax , "логин" = "логике", Т9...
Какое отношение твой комментарий "Это называется метод, а не функция" имеет к выбору подхода?
Ну бред же.
Осмелюсь предположить, что ты не верно истолковал мой вопрос,или не вник в него, или может позабыл)
Для понимания, о чем я, тупое существо тут перья раскидал, предлагаю взглянуть на код автора и, пусть будет для примера, на код лары (да тут любой фреймворк, по сути то, подойдет).
Найди 5 отличий, что называется. Где из этих двух вариантов функциональный подход, а где объектный?
Или тут не слышали о существовании такого разделения и "функциональный" все равно что "процедурный"?
Тогда уж простите ребята, но вы явно что-то проглядели)
Simptom333 , ну то что указано в топике, это как раз таки в моем понимании объективный подход, так как это уже ООП (Объектно-ориентированное программирование). Стало быть все что находится в классе является объектами этого класса а не функциями.
Что касается о функциональном подходе то это уже относится в большей степени процедурному коду. Где будет вызываться обычная функция.

Для понимания в примерах:
Объективное решение, так как get() является объектом класса pit_model может быть вызван как внутри класса так и наследоваться в другие.
php
    class pit_model 
{
public function get()
{
$satiety = pit::get_satiety(ID);


return [
'satiety' => $satiety
];
}
}


Процедурное решение, так как это обычная функция которая будет вызываться непосредственно в самом коде и будет выполнять процесс который будет задаваться в функции и можно вызвать на любой странице сайта.
php
   function get_pit($id) 
{
return $id;
}

________
посл. ред. 29.11.2021 в 04:48; всего 1 раз(а); by DenSBK
Онлайн: 4
Время:
Gen. 0.17
(c) Bym.Guru 2010-2026