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

PHP OOP składnia

+1 głos
179 wizyt
pytanie zadane 21 czerwca 2016 w PHP, Symfony, Zend 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 (88,430 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 (88,430 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,370 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 Maniak (71,440 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,370 p.)
pszepraszam panie psoże, to śe wiencej nje poftuży.
0 głosów
odpowiedź 21 czerwca 2016 przez Boshi Szeryf (96,800 p.)
To nie jest oop, konstruktory nie do tego służą.

Podobne pytania

0 głosów
2 odpowiedzi 96 wizyt
pytanie zadane 8 czerwca w PHP, Symfony, Zend przez Benek Nałogowiec (34,660 p.)
0 głosów
2 odpowiedzi 95 wizyt
pytanie zadane 4 czerwca w PHP, Symfony, Zend przez Justyna Użytkownik (570 p.)
0 głosów
1 odpowiedź 64 wizyt
pytanie zadane 26 maja w PHP, Symfony, Zend przez Piotrek Jabłoński Początkujący (250 p.)
Obowiązuje już zaktualizowany regulamin.

Czy wiesz, że nie musisz już odświeżać strony głównej?

Lista pytań i odpowiedzi aktualizuje się automatycznie!

38,636 zapytań

76,522 odpowiedzi

149,475 komentarzy

18,086 pasjonatów

Przeglądających: 217
Pasjonatów: 18 Gości: 199

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...