PHP

ferdzo(hacker) :)

Македонче
Член од
19 април 2013
Мислења
115
Поени од реакции
14
Локација
Монастири
Јас сакам во оваа тема да се разговара околу PHP. Повќето знаеете што е а и тие што не знаете еве ви подлу прочитајте

PHP
претставува рефлективенпрограмски јазик со отворен изворен код. Првобитно бил замислен како алатка за креирање динамички веб апликации кои се извршуваат на серверската страна. Кратенката означува PHP: Hypertext Preprocessor (што е рекурзивен акроним , кратенка чие име ја содржи самата кратенка и обично се изговара како пе-ха-пе, додека пак, на англиски се изговата пи-ејч-пи).

Јас лично го немам научено сакам да седнам да го учам слегов некои книги на англиски и не ме бендисват.
 
Јас сакам во оваа тема да се разговара околу PHP. Повќето знаеете што е а и тие што не знаете еве ви подлу прочитајте
PHP претставува рефлективенпрограмски јазик со отворен изворен код. Првобитно бил замислен како алатка за креирање динамички веб апликации кои се извршуваат на серверската страна. Кратенката означува PHP: Hypertext Preprocessor (што е рекурзивен акроним , кратенка чие име ја содржи самата кратенка и обично се изговара како пе-ха-пе, додека пак, на англиски се изговата пи-ејч-пи).

Јас лично го немам научено сакам да седнам да го учам слегов некои книги на англиски и не ме бендисват.

Прво започни со овој основен туторијал
http://www.lynda.com/MySQL-tutorial...HP page:1 s:relevance sa:true producttypeid:2

па премини на advanced туторијал
http://www.lynda.com/PHP-tutorials/...HP page:1 s:relevance sa:true producttypeid:2

тек после почни со објектно ориентирано програмирање во php
http://www.lynda.com/PHP-tutorials/...HP page:1 s:relevance sa:true producttypeid:2

за да на крај се префрлиш на MVC
Codeigniter :
http://www.lynda.com/CodeIgniter-tu...HP page:1 s:relevance sa:true producttypeid:2

CakePHP
http://www.lynda.com/CakePHP-tutori...HP page:1 s:relevance sa:true producttypeid:2
 
Ларавел е најлесен за сфаќање. Све во еден фрејмворк. Или .Нет за C#. Модел Вју Контролер во едно. Јас на времето Реакт учев и ништо не разбирав. Погрешен е тој пристап да учиш јаваскрипт од старт. Башка што е глуп јазикот. Денес да би учел од нула скроз би го игнорирал како почетник. Чат ГПТ за учење е исто екстра алатка кој сака да научи.
 
Ларавел е најлесен за сфаќање. Све во еден фрејмворк. Или .Нет за C#. Модел Вју Контролер во едно. Јас на времето Реакт учев и ништо не разбирав. Погрешен е тој пристап да учиш јаваскрипт од старт. Башка што е глуп јазикот. Денес да би учел од нула скроз би го игнорирал како почетник. Чат ГПТ за учење е исто екстра алатка кој сака да научи.

Ларавел го напишал некој тип кој од јава се префрлил на PHP. Иначе PHP ти е најбољи јазик што постои. Уствари не е јазик туку е уметност. A frontend javascript (ванила) ти е најинтересен јазик.
 
Ларавел го напишал некој тип кој од јава се префрлил во PHP. Иначе PHP ти е најбољи јазик што постои. Уствари не е јазик туку е уметност.
.NET, а инспирација му бил Rails и авторот со неговите принципи за елегантен и убав код во кој секој дев би се заљубил, синтакса која ќе потсеќа на човечки јазик и дури и да тотално технички неук човек кога ќе го види кодот да знае што се дешава. Ларавел е пред се фрејмворк кој им го олеснува животот на програмерите, а после е се друго. Се кладам дека од сите веб фрејмворци, да ги собереме сите на купче, никој нема екосфера ко Ларавел и со ниту еден фрејмворк не би можел да исшипуваш готовоа апликација побргу отколку со Ларавел. А и сега ова со Ларавел Клауд ќе биде врвот, ќе го уништат Vercel.
 
.NET, а инспирација му бил Rails и авторот со неговите принципи за елегантен и убав код во кој секој дев би се заљубил, синтакса која ќе потсеќа на човечки јазик и дури и да тотално технички неук човек кога ќе го види кодот да знае што се дешава. Ларавел е пред се фрејмворк кој им го олеснува животот на програмерите, а после е се друго. Се кладам дека од сите веб фрејмворци, да ги собереме сите на купче, никој нема екосфера ко Ларавел и со ниту еден фрејмворк не би можел да исшипуваш готовоа апликација побргу отколку со Ларавел. А и сега ова со Ларавел Клауд ќе биде врвот, ќе го уништат Vercel.
Голема грешка ми е што не го научив Ларавел, ама имав некоја одбивност на времето. Да ми беше работа ларавел ќе го научев лесно, ама пошто работев ванила, некако не ми се учеше без причина. А сега веќе скоро и да не куцам, само некои сложени заебанции. Генерално да знаев Ларавел, многу заебанции со кои се соочуваме сега, немаше да ги имаме.
 
Голема грешка ми е што не го научив Ларавел, ама имав некоја одбивност на времето. Да ми беше работа ларавел ќе го научев лесно, ама пошто работев ванила, некако не ми се учеше без причина. А сега веќе скоро и да не куцам, само некои сложени заебанции. Генерално да знаев Ларавел, многу заебанции со кои се соочуваме сега, немаше да ги имаме.
Абе се се прави, предноста со Ларавел е што хевилифтингот го крие позади абстракции, па делува све фино и просто.

А што мака имаш?
 

Денес имаше release на PHP 8.4

Новини во јазикот:

1. Property hooks - место да се дефинираат посебно пропертиња на класа, посебно гетер и сетер методи за тие пропертиња, имаме 3 в едно

PHP:
class BookViewModel
{
    public function __construct(
        private array $authors,
    ) {}

    public string $credits {
        get {
            return implode(', ', array_map(
                fn (Author $author) => $author->name,
                $this->authors,
            ));
        }
    }
    
    public Author $mainAuthor {
        set (Author $mainAuthor) {
            $this->authors[] = $mainAuthor;
            $this->mainAuthor = $mainAuthor;
        }
        
        get => $this->mainAuthor;
    }
}

се елиминира многу boilerplate и кодот е поелегантен

2. Asymmetric visibility - од сега за гет пропертито може да се дефинира ко public, а за сет ко private и protected

PHP:
class BookViewModel
{
    public private(set) Author $author;
}

3. Директно повикување на метод од класа при инстанцирање објект без употреба на загради

место ова

PHP:
$name = (new ReflectionClass($objectOrClass))->getShortName();

сега го имаме ова

PHP:
$name = new ReflectionClass($objectOrClass)->getShortName();

4. array_find() - многу корисна функција која на некој начин е спецификација на array_filter(). Првиот аргумент е низата, вториот аргумент е колбек функција, у суштина работи исто ко array_filter() разликата е што ќе ти ја врати првата вредност за точниот услов од колбекот, додека array_filter() ќе ти ги врати сите елементи. Има и array_find_key(), array_find_any(), array_find_all() - првата ќе ти го врати клучот место вредноста, втората ќе врати булиан дали било кој елемент од низата го исполнува условот, третата ќе ти врати булиан дали сите елементи го исполнуваат условот од колбекот.

5. Implicit nullable types deprecated

Ова не

PHP:
function save(Book $book = null) {}

Ова да

PHP:
function save(?Book $book = null) {}

мора експлицитно да се означи аргументот со прашалник дека е nullable

6. New HTML5 support

Ова е way overdue, нова нативна класа која правилно парсира HTML5

PHP:
$doc = \Dom\HTMLDocument::createFromString($contents);

7. Object API for BCMath

објектно ориентиран код за BCMath екстензијата

PHP:
use BCMath\Number;
 
$num = new Number('1');
$num2 = new Number('2');
$result = $num + $num2;
 
$result->value; // '3'
 

Денес имаше release на PHP 8.4

Новини во јазикот:

1. Property hooks - место да се дефинираат посебно пропертиња на класа, посебно гетер и сетер методи за тие пропертиња, имаме 3 в едно

PHP:
class BookViewModel
{
    public function __construct(
        private array $authors,
    ) {}

    public string $credits {
        get {
            return implode(', ', array_map(
                fn (Author $author) => $author->name,
                $this->authors,
            ));
        }
    }
   
    public Author $mainAuthor {
        set (Author $mainAuthor) {
            $this->authors[] = $mainAuthor;
            $this->mainAuthor = $mainAuthor;
        }
       
        get => $this->mainAuthor;
    }
}

се елиминира многу boilerplate и кодот е поелегантен

Број 1 е толку глупо што ми се повраќа. Многу подобро е експлицитно да се дефинираат својства, гетер и сетери, може и динамички гетери и сетери за тривијални работи. Кодот ваков испреплетен потсеќа на некој лош јаваскрипт што го пишувал џуниорец. Не знаеш што е метод, што е својство, што е податочен тип. Ова е мое лично мислење.
 
Број 1 е толку глупо што ми се повраќа. Многу подобро е експлицитно да се дефинираат својства, гетер и сетери, може и динамички гетери и сетери за тривијални работи. Кодот ваков испреплетен потсеќа на некој лош јаваскрипт што го пишувал џуниорец. Не знаеш што е метод, што е својство, што е податочен тип. Ова е мое лично мислење.

Најдобра работа кај PHP е што имаш backwards compatibility за се, така што и експлицитното дефинирање си останува ако тоа преферираш, ова е syntactic sugar .

Динамички методи и пропертиња се тргнати од 8.2. Веројатно мислиш на overloading или __get() и __set() (користње на ова е у суштина многу лоша пракса особено ако се рабти за пропертиња со private и protected scope кои можеш да ги читаш и менуваш во глобален нејмспејс и со тоа го кршиш цел принцип на енкапсулација).
 
Последно уредено од модератор:
Што мислите дали е паметно да се учи PHP/Laravel (2024/2025) и дали сеуште има можности за вработување кај нас? Прашувам за себе, ми делува дека ЈavaScript development пазарот на труд кај нас, а и секаде е презаситен и тешко се наоѓа работа... плус смачено ми е веќе од JS фрејмворкс
 
Што мислите дали е паметно да се учи PHP/Laravel (2024/2025) и дали сеуште има можности за вработување кај нас? Прашувам за себе, ми делува дека ЈavaScript development пазарот на труд кај нас, а и секаде е презаситен и тешко се наоѓа работа... плус смачено ми е веќе од JS фрејмворкс
Тешко. Бегај од PHP, позаситено е и од JavaScript.
 
Тешко. Бегај од PHP, позаситено е и од JavaScript.

Можеби е така не знам, јас актуелно барам работа, ама по тоа што гледам во многу случаи двата се бараат (PHP за be, а js за fe)
 

Kajgana Shop

Back
На врв Bottom