• 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
158 wizyt
pytanie zadane 21 czerwca 2016 w PHP, Symfony, Zend przez użytkownika Malolacik De Nowicjusz (190 punkty)
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 użytkownika event15 Szeryf (84,620 punkty)
Na początek, proszę się zainteresować Composerem, Twigiem i namespaces w PHP.
komentarz 21 czerwca 2016 przez użytkownika Malolacik De Nowicjusz (190 punkty)
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 użytkownika event15 Szeryf (84,620 punkty)
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 użytkownika maly Nałogowiec (36,030 punkty)
edycja 27 czerwca 2016 przez użytkownika 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 użytkownika HaKIM Maniak (67,280 punkty)
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 użytkownika maly Nałogowiec (36,030 punkty)
pszepraszam panie psoże, to śe wiencej nje poftuży.
0 głosów
odpowiedź 21 czerwca 2016 przez użytkownika Boshi Szeryf (76,620 punkty)
To nie jest oop, konstruktory nie do tego służą.

Podobne pytania

0 głosów
3 odpowiedzi 322 wizyt
pytanie zadane 29 sierpnia 2015 w PHP, Symfony, Zend przez użytkownika Radzik Nowicjusz (140 punkty)
0 głosów
2 odpowiedzi 399 wizyt
pytanie zadane 25 lipca 2015 w PHP, Symfony, Zend przez użytkownika Aurelian Spodarec Użytkownik (890 punkty)
0 głosów
2 odpowiedzi 427 wizyt
pytanie zadane 29 października 2015 w Rozwój zawodowy, nauka, szkoła, praca przez użytkownika UserAnonymous Początkujący (260 punkty)
...