• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

PHP OOP składnia

VPS Starter Arubacloud
+1 głos
304 wizyt
pytanie zadane 21 czerwca 2016 w PHP przez Malolacik De Nowicjusz (190 p.)
Index.php:

<?php

include('controllers/login.php');
session_start();

if(isset($_POST["logIn"])){
    $signin = new logToSystem($_POST["login"], $_POST["password"]);
}
?>



<!DOCTYPE html>
<html lang="pl">
<head>
 XYZ
</head>
<body id="app-layout">
   <nav class="navbar navbar-default navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">

                <!-- Collapsed Hamburger -->
                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#app-navbar-collapse">
                    <span class="sr-only">Toggle Navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
            </div>

            <div class="collapse navbar-collapse" id="app-navbar-collapse">
                <!-- Left Side Of Navbar -->
                <ul class="nav navbar-nav">
                    <li><a href="index.php">Start</a></li>
                    <li><a href="#">News</a></li>
                    <li><a href="#">Zdjęcia</a></li>
                    <li><a href="#">Statystyki</a></li>
                    <li><a href="#">Wiadomości</a></li>
                </ul>

                <!-- Right Side Of Navbar -->
                <ul class="nav navbar-nav navbar-right">
                    <!-- Authentication Links -->
                    <?php 
                        $button = new logoutbutton;
                    ?>
                </ul>
            </div>
        </div>
    </nav>

    <!-- wrapper -->
    <div class="site-wrappper">

        <!-- .container -->
        <div class="container site-content">
            <div class="row">
                <div class="col-md-8 col-md-offset-2">
                    <div class="card">
                        <div class="panel-body">
                      <?php 
                            $login = new logins();
                        ?>    
                        </div>
                    </div>
                </div>
            </div>
        </div><!-- end of .container -->
    </div><!-- end of wrapper -->
    <!-- Footer -->
    <?php include('footer.php'); ?>

    <!-- JavaScripts -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
</body>
</html>

controllers/login.php :

 

class logins{
    public function __construct(){
        if(isset($_SESSION["zalogowany"]) && $_SESSION["zalogowany"] == 'zalogowany'){
            echo 'zalogowany..';
        } else{
            include('logins.php');
        }
    }
}

class logToSystem{
    
    private $login;
    private $password;
    
    public function __construct($login, $password){
        $this->login = $login;
        $this->password = $password;
        
        if($this->login == 'mateusz' && $this->password == 'mateusz'){
            $_SESSION["zalogowany"] = 'zalogowany';
        } else{
            echo 'Niezalogowany..';
        }
    } 
} 


class logoutbutton{
    public function __construct(){
        if(isset($_SESSION["zalogowany"]) && $_SESSION["zalogowany"] == 'zalogowany'){
            echo '<li><a href="logout.php">Wyloguj</a></li>';
        } else{
            echo '<li><a href="index.php">Zaloguj</a></li>';
        }
    }
}

 

Działać - działa, ale czy to jest jakkolwiek poprawnie zrobione jeśli chodzi o składnie? Czy robi się to troche inaczej?

3 odpowiedzi

+2 głosów
odpowiedź 21 czerwca 2016 przez event15 Szeryf (93,790 p.)
Na początek, proszę się zainteresować Composerem, Twigiem i namespaces w PHP.
komentarz 21 czerwca 2016 przez Malolacik De Nowicjusz (190 p.)
Przechodziłem przez cały kurs Laravela (jakoś bardziej w jego strone mnie namawiano niż w symfony) ale chciałbym się nauczyć czystego obiektowego programowania, stąd też wklejenie tutaj kodu i pytanie czy to jest dobrze sklejone. PHP strukturalnie ogarniam raczej dobrze, teraz chcialem obiektówke, potem MVC a na końcu framework.
2
komentarz 21 czerwca 2016 przez event15 Szeryf (93,790 p.)
Nie mówiłem, żebyś sie uczył symfony, tylko żebyś dowiedział się czym jest autoloading, jak się obsługuje przestrzenie nazw i zaczął korzystać z template. PHP nie jest systemem szablonów, mimo, że daje taką możliwość.

Poza tym dzis najlepiej w sumie zaczynac od mikroframeworków, a nie natywnego języka. Pomijam kwestię słabego doboru frameworka.
0 głosów
odpowiedź 21 czerwca 2016 przez maly Nałogowiec (37,190 p.)
edycja 27 czerwca 2016 przez maly
Tu nie ma żadnej objektowości.
To że użyjesz klas nic nie znaczy, objekty które stworzyłeś nic nie robią podczas całego swojego życia, innymi słowy ukryłeś logikę zwykłej funkcji w konstruktorze klasy i nic poza tym.
komentarz 27 czerwca 2016 przez HaKIM Szeryf (87,590 p.)
Tak na przyszłość, pisze się: nie ma, jeśli czegoś kogoś nie ma. Natomiast niema może być osoba.
komentarz 27 czerwca 2016 przez maly Nałogowiec (37,190 p.)
pszepraszam panie psoże, to śe wiencej nje poftuży.
0 głosów
odpowiedź 21 czerwca 2016 przez Boshi VIP (100,240 p.)
To nie jest oop, konstruktory nie do tego służą.

Podobne pytania

+1 głos
1 odpowiedź 177 wizyt
pytanie zadane 11 lutego 2022 w PHP przez ZnaQu Nowicjusz (130 p.)
0 głosów
0 odpowiedzi 97 wizyt
pytanie zadane 26 kwietnia 2020 w PHP przez creend Gaduła (4,700 p.)
0 głosów
1 odpowiedź 278 wizyt
pytanie zadane 16 grudnia 2019 w PHP przez Piotr Jarema Użytkownik (970 p.)

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...