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

PHP OOP składnia

Ultraszybki serwer VPS NVMe BIZNES
+1 głos
185 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 (92,540 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 (92,540 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 (73,840 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 VIP (100,210 p.)
To nie jest oop, konstruktory nie do tego służą.

Podobne pytania

+2 głosów
2 odpowiedzi 155 wizyt
pytanie zadane 9 grudnia 2017 w PHP, Symfony, Zend przez patrus456 Początkujący (290 p.)
+1 głos
3 odpowiedzi 157 wizyt
pytanie zadane 25 października 2017 w PHP, Symfony, Zend przez `Krzychuu Mądrala (6,790 p.)
0 głosów
2 odpowiedzi 111 wizyt
pytanie zadane 8 czerwca 2017 w PHP, Symfony, Zend przez Benek Nałogowiec (43,480 p.)
Porady nie od parady
Komentarze do pytań nie służą do odpowiadania, od tego jest wydzielona sekcja odpowiedzi. Funkcją komentarzy jest natomiast możliwość uzyskania dodatkowych informacji na temat samego posta.
Ciekawy innych porad? Odwiedź tę stronę!

44,190 zapytań

83,990 odpowiedzi

167,204 komentarzy

21,133 pasjonatów

Przeglądających: 145
Pasjonatów: 3 Gości: 142

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.

...