Wątek przeniesiony 2021-09-09 15:01 z Społeczność przez cerrato.

Skąd wzięła się nienawiść do PHP-powców?

3

Strony w php są tańsze bo czas ich realizacji jest dużo krótszy.

A skąd właściwie to założenie? Bo żeby taką tezę wysuwać to trzeba byloby mieć jak w sensowy sposób to porównać ;)

0

Dlaczego w PHP się pisze szybciej niż w C#? Znalazłem pierwszy lepszy kontroler dla CRUDa w ASP.NET Core i ma on jakieś 60 linii: https://github.com/carltonstith/asp-dot-net-core-mvc-crud/blob/master/Controllers/EmployeeController.cs W Laravelu by było mniej? Zakładamy, że pomijamy dobre praktyki itd.

1

PHP jest zły ;) https://www.phparch.com/article/education-station-php-is-the-worst/
przeczytajcie są podane argumenty które jednocześnie i przeciwnicy i zwolennicy uznają za swoje ;)

function like strpos() that returns either an
integer or a boolean is slightly easier to handle than having a
method that returns an integer or throws an exception

0
nobody01 napisał(a):

Dlaczego w PHP się pisze szybciej niż w C#? Znalazłem pierwszy lepszy kontroler dla CRUDa w ASP.NET Core i ma on jakieś 60 linii: https://github.com/carltonstith/asp-dot-net-core-mvc-crud/blob/master/Controllers/EmployeeController.cs W Laravelu by było mniej? Zakładamy, że pomijamy dobre praktyki itd.

W larawerze to by bylo 9 linijek i to z dobrymi praktykami

class MyController extends Controller {
    public function index() {}
    public function create() {}
    public function store() {}
    public function show() {}
    public function edit() {}
    public function update() {}
    public function destroy() {}
}
0

W sumie pomyślałem, że na szybko z ciekawości zobaczę ile wyjdzie linii gdyby kod przeportować :)

use App\Http\Controllers\Controller;
use App\Http\Requests\EmployeetStoreRequest;
use App\Http\Requests\\EmployeetUpdateRequest;
use App\Models\Employee;
use Illuminate\Http\Request;

class EmployeeController extends Controller {

    public function index() {
        return view('employee.index', ['employee' => Employee::all()]);
    }

    public function create(Employeet $employee) {
        return view('employee.create');
    }

    public function store(EmployeetStoreRequest $request) {
        return redirect(route('employee.edit', Employee::create($request->validated())))->with([
            'success' => 'Successfully Created New Employee'
        ]);
    }

    public function show(Employee $employee) {
        return view('employee.show', ['employee' => $employee]);
    }

    public function edit(Employee $employee) {
        return view('employee.edit', ['employee' =>  $employee]);
    }

    public function update(EmployeetUpdateRequest $request, Employee $employee) {
        $employee->update($request->validated())-refresh();

        return redirect(route('employee.edit', $employee))->with([
            'success' => 'Successfully Edited Employee.'
        ]);
    }

    public function destroy(Employee $employee) {
        $employee->delete();

        return redirect(route('employee.index'))->with([
            'success' => 'Successfully Deleted Employee.'
        ]);
    }
}

Tak by to wyglądało, mniej więcej wyszło coś kolo 40 linijek samego kodu. ale to już kwestia podomykania klamer i czytelności kodu.Ogólnie każdy początkujący by skumał taki podstawowy CRUD w 5 minut

0

Hmm, no nie do końca to samo. Laravelowy ORM zdaje się implementować Active Record, czyli działa zupełnie inaczej niż EF Core.

1

Ja nie wiem skąd się bierze hejt na PHP. Obecnie piszę API w nim i nie dlatego że jest najlepszy do tego, ale wymaganie jest takie, że rozwiązanie ma pójść na "każdym" hostingu. Jest jakaś alternatywa?

0

PHP jest o tyle dobrze, że można stosować dwa typy typowań statyczne i dynamiczne to statyczne jest ograniczone trochę.

4

Sukcesem PHP nie był język sam w sobie, ale bardzo niski próg wejścia. W PHP najłatwiej można było napisać prostą księgę gości na stronie i kilka innych rzeczy. Z czasem ludzie zaczęli pisać frameworki, fora, aż powstał Wordpress, który w tym wątku nie jest wymieniany dostatecznie często. Wordpress zdominował rynek niskobudżetowych stron internetowych. Co z tego, że Django i RoR były lepszymi frameworkami skoro wystarczyło zapłacić 1000 zł synowi sąsiada i ten mógł stworzyć nam wizytówkę w Wordpressie? Dzisiaj rynek PHP wciąż jest zbyt duży by po prostu się zwinąć.

Hejt na programistów PHP wziął się właśnie z tego, że profesjonaliści przejmowali projekty rozpoczynane przez "gimnazjalistów" i łatali ten kod, sami często robiąc szkolne błędy. Bardzo popularne były ataki w stylu php injection lub sql injection. 15 lat temu większość popularnych witryn internetowych było ofiarami takich ataków bo programiści zamiast używać frameworków do filtrowania danych od użytkowników to pisali własny kod, który to robił. Te wszystkie portale były w większości napisane w PHP.

2

Dlaczego w PHP się pisze szybciej niż w C#? Znalazłem pierwszy lepszy kontroler dla CRUDa w ASP.NET Core i ma on jakieś 60 linii:

No i to jest ten cały problem z porównywaniem. Założmy że np. napisanie obsługi samego requestu HTTP w tzw. RestController w C# by zajmowało 2 razy więcej linijek kodu od tego w PHP. Ale to znaczy że kod w PHP sie 2 razy szybciej pisze? No niekoniecznie, zwłaszcza że jak nie mamy do czynienia z CRUDEM tylko jest logika biznesowa to owe controllery to 5% czy 10% kodu.
Liczba lini kodu, szybkość tworzenia jest związana z architekturą, testami etc nie tylko z językiem programowania

4
twoj_stary_pijany napisał(a):

Bardzo popularne były ataki w stylu php injection lub sql injection. 15 lat temu większość popularnych witryn internetowych było ofiarami takich ataków bo programiści zamiast używać frameworków do filtrowania danych od użytkowników to pisali własny kod, który to robił.

W wielu wypadkach zmienne te nie były w ogóle w żaden sposób filtrowane. Ba! Na samym początku kariery PHP wszelkie zmienne umieszczone w adresie były automatycznie deklarowane i przypisywane w środowisku języka, bez konieczności intencjonalnego pobierania ich z tablicy GET, co stwarzało pole do naprawdę kosmicznych nadużyć włącznie z ustawieniem sobie czegoś w stylu $admin=1.

Bo własnoręczne filtrowanie zmiennych to naprawdę nie jest żadna czarna magia i przez dwadzieścia lat chałturzenia w PHP tylko raz zdarzył mi się "włam" na jednej z najstarszych stron, gdzie co prawda przefiltrowałam zmienne wejściowe, ale nie sprawdzałam, czy przesłana nazwa kategorii posta mieści się w tablicy faktycznie istniejących kategorii, co pozwoliło jakiemuś dowcipnisiowi rozjechać mi wygląd strony nawrzucaniem tam bzdur.

BTW: najwięcej radości sprawia zawsze oglądanie w logach tysięcy zapytań testujących podatność SQL injection, na stronach, które nie używają SQL-a.

0

z php jest tak jak z Kia jeśli chodzi o auta, no niby Kia też samochód ale jednak jak podjeżdżasz Kia no to jest śmiech na sali (zwłaszcza Kia Ceed, wym. kiła szit)

1

@Patryk Maleszko: oj panie takiego stingera to bym se kupił tylko mnie nie stać :)

3

Porównanie do samochodów bardzo trafne. Trzeba jednak zauważyć, że KIA mocno się zmieniła od czasów kiedy była "tandetnym koreańczykiem". Teraz KIA ma "droższe" samochody a wyposażeniem niewiele odbiegają od innych marek i co najciekawsze, ludzie na to idą :) A czy wywołuje to śmiech...? Nie sądzę.

PHP również się mocno zmienił od czasów wersji 4 :D i nadal jest widoczny w wielu miejscach.

2

Z hejtem na php jest jak z doctrin i eloquentem.
Gadają, że eloquent jest dla nich za cienki, że już z niego wyrośli, a doctrin jest kozacki, a później się okazuje, że nie wiedzą nawet jak działa Eager Loading i im się wydaję, że to jest wyciąganie danych jednym joinem.

W javie tak samo możesz mieć legacy-g**no kod jak w każdym innym języku, php od tego nie odbiega.
I może faktycznie to są opinie ludzi, którzy mieli styczność z php 10 lat temu i nadal na tej opinii bazują, nie wiedząc w ogóle jak się teraz w tym pisze.

0 użytkowników online, w tym zalogowanych: 0, gości: 0