PHP czy framework?

0

Czesc, ucze sie od jakiegos czasu php i zastanawiam sie czy nie przsiasc sie na jakis framework. Z tego co patrzylem zasady sa podobne, wiec nawet niewazne na jaki wejde na kolejny jak sie przesiade bedzie mi latwiej, ale chodzi o to, jak pracodawcy patrza na umiejetnosci pisania w czystym php, czy frameworku. Wiem co to mvc i obiektowka, wiec na frameworku sie odnajde, ale chcialbym zeby nauka nie poszla w las, dlatego zastanawiam sie, czy nie lepiej ogarnac bardziej czystego php - choc wydaje mi sie ten jezyk, ze jest w nim straszny balagan mimo wszystko, a widzac kod w frameworku wyglada wrecz perfect. No ale jak to wyglada w rzeczywistosci. W pracy? Framework, czy raczej tradycyjne podejscie?

S0
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 7 lat
  • Postów:12
0

znajomość "czystego" php jest ważna ale większość firm używa frameworków

pavon147
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 8 lat
1

Oczywiście, że framework. Przyspieszasz pracę, piszesz czysty i zrozumiały dla innych kod. Pierwsze o co zapytają, to jakie znasz frameworki i wzorce projektowe. Czasami nie warto używać frameworka typu Laravel przy małych projektach. Trzeba rozróżnić kiedy użyć np. Smarty, a kiedy coś konkretniejszego, jednak reasumując i tak powinno się używać jakiegoś frameworka lub przynajmniej solidnie implementować wzorce. Nauka na pewno nie pójdzie w las.

edytowany 1x, ostatnio: pavon147
Fi3rce
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 9 lat
  • Postów:423
1

Ja po 2 miesiącach przygody z web devem zostałem przeniesiony z HTML/CSS na Zend'a. Z php prawie nic nie umiałem, ale miałem podstawową wiedzę z zakresu programowania w Javie i OOP. Według mnie framework jest dla kogoś, ktos zna już dany język. To tak samo jak miałem z jQuery. Zacząłem go używać zanim zrozumiałem dobrze JS i wkurw.... się co 5 sekund, bo a to this mi sie bindowało nie takie jak trzeba, a to domknięcia ( wtedy nie widziałem, że coś takiego istnieje w tym języku) się pojawiały itd. W obydwu przypadkach wróciłem do początku, przyswoiłem solidnie podstawy i dopiero wróciłem do frameworków. Poza tym uważam, że dobrze jest wiedzieć jak coś działa, zanim się zacznie korzystać z gotowych komponentów.

Piszę to z punktu widzenia początkującego, więc zwróć większa uwagę na opinie doświadczonych programistów.


„Every Pro was once an amateur, every expert was once a beginner.”
edytowany 2x, ostatnio: Fi3rce
0

To znaczy ja liznalem tego php-a. Bawilem sie z formularzami itp. Proste crud aplikacje rowniez sobie napisalem wykorzystujac tablice $_GET chociazby. I tak sobie mysle. A co tam, zobacze sobie jakies tutoriale. Niechacy jakos natrafilem na Laravel wlasnie. Spodobal mi sie, nie powiem. No ale tak sobie mysle. Kurcze, juz do frameworka mam sie rzucac? No ale jak na razie wszystko jest dla mnie zrozumiale i wiem co z czego jest + framework js-owe, ktore tez cos tam sobie robilem. Jako iz ogladalem wczoraj przez kilka godzin tutki do laravel i juz sobie go zaimplementowalem composerem, to chyba zaczne w tym pisac, ale jako drugi strzal myslalem nad symfony. Tak sobie mysle, ze warto to umiec, bo nawet jak w pracy bym pisal w springu, to podejrzewam, ze na projekt php predzej czy pozniej zostane wrzucony. Mial ktos doswiadczenie z laravelem? Tak sobie mysle jaki front do tego polaczyc. Osobiscie co polecacie?

Fi3rce
"jest w nim straszny balagan" - wybrałeś idealny framework dla siebie - Laravel - The PHP Framework For Web Artisans :D
drorat1
  • Rejestracja:ponad 15 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Krasnystaw
  • Postów:1181
0
KrawiecBombata napisał(a):

Proste crud aplikacje rowniez sobie napisalem wykorzystujac tablice $_GET chociazby.

Tak co do CRUD, GET służy do pobierania danych z bazy danych np. wyświetlenie listy jakichś danych i jeśli chodzi Ci o tablicę $_GET która to w istocie obrazuje to co masz w pasku adresu, konkretniej parametry:

domena.com/index.php?parametr1=wartosc1&parametr2=wartosc2

Wykorzystuje się w wyszukiwarkach.

I nie wstawia się nowych rekordów przez $_GET tylko przez $_POST, dotyczy to także modyfikacji. Pomijam tu już REST, gdzie wykorzystuje się metody GET, POST, PUT, DELETE.

Niechacy jakos natrafilem na Laravel wlasnie. Spodobal mi sie, nie powiem. No ale tak sobie mysle. Kurcze, juz do frameworka mam sie rzucac?

I co z tego że Ci się spodobał akurat ten framework? W większości przypadków używa się Symfony a ten będzie NARZUCONY przez pracodawców i nie jest istotne czy Ci się podoba czy nie. A niektóre firmy używają WŁASNYCH rozwiązań, więc na niewiele się zda znajomość popularnych frameworków.

Ogólnie, FW zawiera zbiór gotowych klas do typowych zastosowań, aplikację webową przy ich użyciu pisze się o niebo szybciej niż od zera, co nie zwalnia od znajomości czystego PHP bo to i tak podstawa.

Zobacz pozostały 1 komentarz
drorat1
To sprawdź sobie to co jest w $_GET przez var_dump albo to co jest $_SERVER['REQUEST_METHOD'] przy takim wywołaniu z tymi parametrami zaczynającymi się od ? a rozdzielonymi &
Patryk27
Aha, czyli to, że superzmienna GET służy do pobierania wartości z bazy to Twoim zdaniem nie jest bzdura?
drorat1
Mówiłem raczej o metodzie GET a nie np. POST. A w tych parametrach URL mogą być po prostu opcje do filtrowania danych. np tak: domena.com/search?from=2015-01-01&to=2015-05-01
Patryk27
Nadal nie widzę, w jaki sposób to służy do pobierania danych z bazy danych.
Heheczek
Po prostu GET i POST to jest tak jakby "standard" nagłówka HTTP. Do wyszukiwania danych według standardu powinno się używać GET a do zapisu danych POST lecz jak wiadomo różnie ludzie to interpretują :)
pavon147
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 8 lat
0

Naucz się dowolnego wiodącego frameworka. W sieci jest dosyć diagramów/wykresów prezentujących ich popularność. Jeśli przyswoisz jeden, to nauka następnych przyjdzie Ci łatwiej i jeżeli będzie się trzeba na coś przerzucić, to nie będziesz miał większych problemów.

Fi3rce
W sieci króluje Laravel z tego co mi się udało zorientować, ale w Polsce jest to chyba Symfony, więc jeżeli już wydaje mi się, że lepiej żeby poszedł w tym kierunku.
0

domena.com/index.php?parametr1=wartosc1&parametr2=wartosc2
tak i wlasnie dzieki tym parametrom wykonywalem operacje przez php i mysql.

I co z tego że Ci się spodobał akurat ten framework? W większości przypadków używa się Symfony a ten będzie NARZUCONY przez pracodawców i nie jest istotne czy Ci się podoba czy nie. A niektóre firmy używają WŁASNYCH rozwiązań, więc na niewiele się zda znajomość popularnych frameworków.

Tak, ale jak wczesniej napisalem mam w planach nauke laravel a pozniej symfony. Dzieki temu z pewnoscia jakikolwiek bedzie mi NARZUCONY framework bedzie mi lepiej, bo bede wiedzial z czym sie je, pozostanie mi jedynie przyzwyczajenie sie do rozwiazan danego srodowiska w ktorym bym musial pracowac.

Jak na razie mam zainstalowany laravel, wiec zrobie sobie cos w tym a pozniej symfony, zeby miec porownanie i wybrac, zeby nie bylo pozniej za pozno. Btw. nie ograniczajmy sie do polskich rynkow ;)

0

Mam pytanko. Wie ktos moze jak polaczyc laravel z angularem? Bo jak wrzucam {{dane}}, to wypluwa mi blad. Bo w laravel tez uzywa sie takich znacznikow, wie ktos jak to pogodzic?

drorat1
  • Rejestracja:ponad 15 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Krasnystaw
  • Postów:1181
0

Może użyj: { zamiast { i } zamiast } ale w miejscach gdzie jest kod tego Angulara, PHP ma tylko wygenerować dynamiczną stronę a tam w miejscach określonych przez {{ }} wstawia się jakieś zmienne.

http://www.degraeve.com/reference/specialcharacters.php

edytowany 1x, ostatnio: flowCRANE
0

Hm, poszlo. Jest jakis sposob, zeby np. podmienic a angularze znaki { i } np, na {% %}, chociazby, bo przeciez nie bede takiego kodu uzywal.

0
Kopiuj
	var app = angular.module('firstapp', [], function($interpolateProvider) {
        $interpolateProvider.startSymbol('{%');
        $interpolateProvider.endSymbol('%}');
    });;

Tutaj kod dla osob ktore chcialyby zmienic swoje znaki w angularze.

edytowany 1x, ostatnio: flowCRANE
drorat1
  • Rejestracja:ponad 15 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Krasnystaw
  • Postów:1181
0

@Patryk27

Wezmę na przykładzie Kohana Framework, wyszukiwanie dajmy na to listy ogłoszeń o pracę:

jakasdomena.com/jobs?fromdate=2015-01-01&todate=2015-05-31

domyślny routing:

Kopiuj
Route::set('default', '(<controller>(/<action>(/<id>)))')
    ->defaults(array(
        'controller' => 'welcome',
        'action'     => 'index',
));

I kontroler:

Kopiuj
class Controller_Jobs extends Controller_Template
{
    public function action_index()
    {
        try
        {   
            if ($this->request->query('fromdate') && $this->request->query('todate'))
            {
                $fromdate = $this->request->query('fromdate'); 
                $todate = $this->request->query('todate'); 
            
                $jobs = DB::select('*')
                    ->from('jobs')
                    ->where('jobdate', '>=', $fromdate)
                    ->where('jobdate', '<=', $todate)
                    ->execute()
                    ->as_array();
            }
            else
            {
                $jobs = DB::select('*')
                    ->from('jobs')
                    ->execute()
                    ->as_array();
            }
        }
        catch (Database_Exception $e)
        {
            $error = 'Database error';
        }

        $this->template = View::factory('jobs/index')
                        ->set('jobs', $jobs)
                        ->bind('error', $error);  
    }
}

Zamaiast $this->request->query można by użyć $_GET i sprawdzanie typu isset ale to chyba niepotrzebne zamieszanie i pewnie też ryzyko błędów.

edytowany 1x, ostatnio: drorat1
Patryk27
No ale Ty pobierasz dane z bazy danych przez klasę DB, a nie - tak jak napisałeś - superzmienną $_GET
drorat1
Pewnie po prostu źle mnie zrozumiałeś. W tym przykładzie i tak jako metoda będzie GET a $_GET będzie zawierać to co jest w parametrach fromdate i todate jako tablica. I to jest użyte do pobierania i filtracji danych a nie żeby $_GET zawierało już te dane z bazy. Chodziło mi raczej o tą metodę GET.
Patryk27
Nie zrozumiałem Cię źle. Wyraźnie napisałeś, że GET służy do pobierania danych z bazy danych.
Garen_eye
  • Rejestracja:około 10 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Warszawa
  • Postów:68
0

Nie wiem czy padła już taka odpowiedź w tym wątku, ale od siebie jeszcze proponuje Ci popisać w jakimś MicroFrameworku typu Slim. Taki kompromis pomiędzy pewnym schematem kodu (o ile w miarę trzymasz się wzorców) a własnym widzimisię. Fajnie rozwija i pozwala zrozumieć jakie problemy rozwiązują te większe frameworki.

Dodatkowo oprócz badania samych frameworków korzystaj z Composera i buduj swoje aplikacje sprawdzając rozwiązania osób trzecich.

(Nie wiem do końca czy to właściwe podejście, ale właśnie takie sam obrałem przygotowując jakieś fundamenty pod przyszłą pracę.)


0

Dzieki serdecznie za rady. Jak na razie napisze sobie jakas stronke w laravel, a po tym sprobuje zrobic to samo, ale w symfony i zobacze co mi bardziej odpowiada, zeby zaczac jako pierwsze. Jak myslicie, czy nauka frameworkow php-a pomoze mi w jakims stopnie, gdybym chcial pozniej sie przeniesc na springa?

drorat1
Spring to FW dla JAVA.
0

Wiem, ze jest to framework dla javy. Ale wlasnie do tego zmierzam. Czy uczac sie springa bede widzial podobienstwa. Czyli routingi i te sprawy, tylko po prostu inaczej jest to obrane, czy tam sa inne rozwiazania kompletnie.

forsberg
Nauczenie się Symfony2 / 3 to dobry krok w kierunku Springa, bo ten pierwszy sporo wziął z drugiego. Ale w sumie nie wiem po co na około, to jak chcesz być Javow'cem, to zacznij od Javy SE, a potem JEE, a potem Spring, PHP wówczas możesz pominąć, stracisz czas jeśli nie chcesz tego robić.
Tumeg
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 8 lat
  • Postów:687
0

Poznanie ogólnej koncepcji na której opiera się programowanie obiektowe na pewno Ci nie zaszkodzi i pomoże lepiej pracować nie tylko z językiem przy którym nauczyłeś się OOP.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)