Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wzorzec MVC+Tablica GET
Forum PHP.pl > Forum > Przedszkole
er00lek
Witam , mam otóż taki problem ,że dostałem pewne zadanie od swojego nauczyciela - Jako dodatkową ocenę , myślałem że pójdzie łatwiej jednak , myliłem się. - Trudzę się z tym od dłuższego czasu gdzie podobno nie jest przy tym dużo roboty.- Prosiłbym o pomoc i krótką analizę kodu abym wiedział co wzięło się z czego.

"Zrób aplikację internetową wykorzystującą wzorzec MVC która wypisze zadany napis zadawaną ilość razy (argument przekazywany za pomocą tablicy GET) Język PHP."

Proszę o pomoc , to bardzo ważne !

I z góry oczywiście dziękujęwink.gif
nospor
I z czym masz problem? Nie umiesz z $_GET pobrać parametru?
er00lek
Głównie nie potrafię sobie wyobrazić jaki ma wyjść tego efekt. - Zadawany napis zadawaną ilość razy..

No i z tego co wyczytałem Wzorzec MVC> Programowanie Obiektowe >Podstawy PHP . - Ja jak na razie zatrzymałem się na pierwszym , nie potrafiąc nic samemu zrobić w programowaniu obiektowym. ;x
nospor
To może najpierw zapomnij że to ma być MVC/obiektówka i skup się na tresci zadania: wyświetl napis zadaną liczbę razy.

No chyba pętlę FOR umiesz używać? A jak nie umiesz to naprawdę nie zasługujesz na tę dodatkową ocenę. Bądź fair wobec samego siebie nie mówiąc już o nauczycielu.
er00lek
To nie tak . - Dodam że jestem w klasie pierwszej technikum informatycznego ,więc to jest bardzo ponad materiał ;p . - Spędzam przy tym dużo czasu ,lecz takie języki jak PHP, PWN - Znam tylko powierzchownie . - Nauczyciel twierdził że to jest kilka chwil roboty o ile oczywiście potrafi się posługiwać wzorzec MVC itd. - Dlatego proszę was o pomoc. Gdybym widział chociaż zarys ,lub co mam zrobić pokolei . - Miałbym jakiś punkt zaczepienia po prostu.
Crozin
1. Na pewno nikt nie poda Ci tu gotowego rozwiązania - a przynajmniej nie powinien.
2. Podaj kod jaki masz, napisz co Ci w nim nie wychodzi.
3. Jeżeli to ma być w OOP z wykorzystaniem MVC to nie pozostaje Ci nic innego jak zabrać się za manual, ewentualnie jakieś kursy OOP (niestety większość jest niezwykle słabej jakości). Bez znajomości OOP tego fragmentu wykonać po prostu nie będziesz umiał.
4. Zacznij małymi kroczkami, tj.: najpierw powtórz zdanie daną ilość razy, następnie ową ilość spróbuj pobrać z $_GET, następnie opakuj to w obiekt (niezwykle prosty to tak swoją drogą). Później będziesz mógł pomyśleć o implementacji tego w MVC.

PS. Twój nauczyciel do zbyt ogarniętych nie należy proponując Ci takie zadanie. Powtarzanie zdania (wręcz bezczelnie proste) wykorzystane z MVC (jeżeli chodzi o kompletną implementację MVC, a nie zwykły trójpodział zadań, zadanie raczej nie należące do trywialnych dla początkujących).
er00lek
Kod
<?php

    
    for($txt = 1; $txt < 50; $txt += 1) {
         echo "coffeshop <br />";
        
}
    
?>


Wiem , możecie się śmiać - lecz próbuję łapać się wszystkiego co mogę , a jeśli chodzi o takie rzeczy - Łatwo się nie poddaje. - Dzięki temu kodowi tekst "coffeshop" otrzymałem 50 razy.
in5ane
No i to jest Twoje główne zadanie. Teraz sprawa wygląda tak, że musisz to opakować w obiektówkę, czyli po prostu musisz utworzyć klasę, w niej metodę jakąś i po prostu w tej metodzie musisz wykonać te pętlę i zwrócić go. Zastanawia mnie tylko po co, w jakim celu, dlaczego i w ogóle ma być to w MVC. Spytaj nauczyciela, czy nie możesz zrobić po prostu zwykłej klasy w PHP i wyświetlić to normalnie. Wytłumacz mu, że MVC w czymś takim nie ma sensu. Powiedz, że z modelu w ogóle nie skorzystasz i pchanie się z przekazywaniem danych pomiędzy widokiem i kontrolerem w tak banalnym skrypcie jest niepotrzebne. Może przyzna Ci racje, bo wytłumaczysz mu mniej więcej na czym ma polegać MVC.

Przykład:
  1. class Program {
  2. public function programuje() {
  3. // twój for itp, itd...
  4. }
  5. }
  6.  
  7. $obiekt = new Program;
  8. $obiekt->programuje();
Coś takiego to przykład programowania obiektowego, operacje wykonywane na klasie, tworzenie obiektu klasy, odwoływanie się do metody (czyli na chłopski rozum dla nowicjusza do funkcji) klasy.

Jeżeli musisz na 100% zaimplementować to w MVC, to pogoogluj troszkę.


@edit: no i oczywiście musisz jeszcze w tej klasie utworzyć jakaś zmienna, która zbiera dane z GET'a, ile razy ma być odtworzona pętla for.

@edit2: o ile mi wiadomo MVC to sporo pisania, to takie budowanie własnego mini frameworka, nigdy nie tworzyłem banalnego (takiego na zaliczenie) MVC, więc nie bardzo Ci w tym pomogę, niech wypowiedzą się bardziej ogarniający temat.
memory
Nauczycielowi chodzi pewnie o coś takiego

http://www.youtube.com/watch?v=Aw28-krO7ZM
Thorang Hoog
Wyczytałeś, że MVC = Programowanie obiektowe.
Osobiście nie znalazłem takich informacji. Nie trzeba MVC robić od razu w OOP. Jeśli nauczyciel nie określił tego jasno to porzuć takie utrudnienie.
Zajrzyj na 20 stronę książki "Practical Web 2.0 Applications with PHP5" - Quentin Zervaas - 2008 // Nie wiem czy była wydana w Polsce.
Znajdziesz tam taki oto kod:

In the MVC version, you would effectively have three files. The model:
  1. <?php
  2. function get_articles()
  3. {
  4. $result = mysql_query('select * from news order by article_date desc');
  5. $articles = array();
  6. while ($row = mysql_fetch_objects($result)) {
  7. $articles[] = $row;
  8. }
  9. return $articles;
  10. }
  11. ?>


The controller:
  1. <?php
  2. $articles = get_articles();
  3. display_template('articles.tpl');
  4. /*
  5. display_template() is a fictional function that represents some mechanism used to render
  6. templates.
  7. */
  8. ?>


And the view:
  1. <html>
  2. <body>
  3. <h1>News Articles</h1>
  4. <?php foreach ($articles as $row) { ?>
  5. <h2><?php echo $row->headline ?></h2>
  6. <p>
  7. <?php echo $row->body ?>
  8. </p>
  9. <?php } ?>
  10. </body>
  11. </html>


Jeśli chodzi o taką argumentacje:
Cytat
Powiedz, że z modelu w ogóle nie skorzystasz i pchanie się z przekazywaniem danych pomiędzy widokiem i kontrolerem w tak banalnym skrypcie jest niepotrzebne.

W takim przykładzie MVC ma jak najbardziej prawo bytu. W końcu to zadanie dla początkującego. Jeśli coś działa na małej ilości danych wejścia i wyjścia zadziała także na dużej ilości danych. ;p
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.