LINUX.ORG.RU

лучшая книга по PHP

 


1

1

ищу.

базовый синтаксис условно знаком (пройтись с академической точки зрения не помешает). с базой данных работал.

что знакомо - ajax, json, css, javascript, html - это не нужно.

что не знакомо - ооп, паттерны.

О чем еще забыл что нужно и важно?

Хотелось бы сбалансированную книгу которая не будет перетягивать одеяло в какую-то определенную сторону, а пройдется по всему важному.



Последнее исправление: VoDD87 (всего исправлений: 1)

Очевидный Зандстра очевиден.

no-such-file ★★★★★
()

Мэтт Зандстра «Объекты, шаблоны и методики программирования» Это не просто лучшая книга, это единственная книга которую вообще стоит читать по PHP. Только смотри по редакциям - читай самую последнюю. Их уже 5 вроде бы вышло.

qtm ★★★
()
Последнее исправление: qtm (всего исправлений: 1)

Потдерживаю отписавшихся за Зандстра, еще Котеров не плох. А так php.net

julixs ★★★
()

лучшая книга по PHP

PHP 7 в подлиннике + Мэтт Зандстра. Ещё ПСРы (и даже немного стандартов ПИАР) б почитать, просто, чтобы к ним привыкнуть.

fernandos ★★★
()
Последнее исправление: fernandos (всего исправлений: 1)
Ответ на: комментарий от Harald

Let’s write a simple “Hello, $name” CLI program. To try it out, create a file named hello.php, as below.

<?php
if ($argc !== 2) {
    echo "Usage: php hello.php <name>" . PHP_EOL;
    exit(1);
}
$name = $argv[1];
echo "Hello, $name" . PHP_EOL;

PHP sets up two special variables based on the arguments your script is run with. $argc is an integer variable containing the argument count and $argv is an array variable containing each argument’s value. The first argument is always the name of your PHP script file, in this case hello.php.

The exit() expression is used with a non-zero number to let the shell know that the command failed. Commonly used exit codes can be found here.


Ну это такое… Вроде мелочь, а учит неправильно, ШИБАНГА нет:

#!/usr/bin/env php
<?php die("PHP must die"); ?>
tz4678 ★★
()

Страно, что ты знаешь JS, но не знаешь ООП. Паттерны ты на самом деле уже применял просто никогда не задумывался, что какой-то смузихлеб на самокате для этого куска кода придумал красивое название. Все паттерны по-сути тебя предостерегают от создания портянок, всемогущих god-объектов, т.е. учат делать декомпозицию. PHP омерзителен, я бы советовал ковырять Node.js, но при этом многие пхпшники на голову выше фронтендеров, так как ХОТЯ БЫ знают о существовании битовых масок. Недостатки PHP: доллары, 100500 функций в global space, тк модули изначально не были предусмотрены, область видимости переменных никак в нормальных языках (у python частично такая же проблема из-за чего нужно global использовать, а лучше не использовать, активно юзая ООП), пытается быть похожим на java, что выглядит кринжово, такак язык похож на говнянного франкенштейна, ну и само качество проектов на нем. Будучи пхпшником ты не увидишь других проектов кроме сайтов визиток и очередного говномагазина на битриксе, ведль для всего остального применяются Java, C#, Python, Ruby, Go, Node.js

tz4678 ★★
()
Последнее исправление: tz4678 (всего исправлений: 2)
Ответ на: комментарий от tz4678

многие пхпшники на голову выше фронтендеров

И чем? Чем то, что ты написал подимает PHP кодеров надо другими?

shleemypants
()
Ответ на: комментарий от tz4678

echo «Usage: php hello.php » . PHP_EOL;

exit(1);

То есть они взяли экзиткод 1, но пишут не в поток ошибок?

<?php
if ($argc !== 2) {
    fwrite(STDERR, "Usage: php hello.php <name>" . PHP_EOL);
    exit(1);
}
fernandos ★★★
()
Ответ на: комментарий от fernandos
/dev via 🐍 v3.9.6 on ☁️ tz4678@gmail.com 
➜ vi test.php

~/dev via 🐘 v8.0.8 via 🐍 v3.9.6 on ☁️ tz4678@gmail.com took 3m 
➜ chmod +x test.php

~/dev via 🐘 v8.0.8 via 🐍 v3.9.6 on ☁️ tz4678@gmail.com 
➜ ./test.php       
Usage: php test.php <name>

~/dev via 🐘 v8.0.8 via 🐍 v3.9.6 on ☁️ tz4678@gmail.com 
✗ ./test.php dodik
Hello, dodik

~/dev via 🐘 v8.0.8 via 🐍 v3.9.6 on ☁️ tz4678@gmail.com 
➜ cat test.php     
#!/usr/bin/env php
<?php

$script_name = basename($argv[0]);

if (2 > $argc) {
  fwrite(STDERR, "Usage: php $script_name <name>" . PHP_EOL);
  exit(1);
}

$name = $argv[1];
echo "Hello, $name" . PHP_EOL;
tz4678 ★★
()
Ответ на: комментарий от theNamelessOne

Так интерпретатор пхп шибанг игнорирует. Я на пхп 5 лет не пишу, а вы пишите на нем лет по 15, а таких особенностей не знаете

/dev via 🐘 v8.0.8 via 🐍 v3.9.6 on ☁️ tz4678@gmail.com 
➜ php hello.php test
Hello, test

~/dev via 🐘 v8.0.8 via 🐍 v3.9.6 on ☁️ tz4678@gmail.com 
➜ cat hello.php               
#!/usr/bin/env php
<?php

$script_name = basename($argv[0]);

if (2 > $argc) {
  fwrite(STDERR, "Usage: php $script_name <name>" . PHP_EOL);
  exit(1);
}

$name = $argv[1];
echo "Hello, $name" . PHP_EOL;
tz4678 ★★
()
Ответ на: комментарий от tz4678

Я на пхп 5 лет не пишу, а вы пишите на нем лет по 15

Ну давай меряться, я вообще на PHP не писал.

а таких особенностей не знаете

Нет, знаю. Ты просто читать не умеешь.

theNamelessOne ★★★★★
()
Ответ на: комментарий от tz4678

Так интерпретатор пхп шибанг игнорирует

Интересно, это как-то связано с тем, что shebang является комментарием 🤔… Да нет, быть такого не может.

theNamelessOne ★★★★★
()
Ответ на: комментарий от fernandos

А он разве не исполняемый файл сделать хочет?

А с чего ты это вообще взял?

Ну блин, там даже в Usage (которое ты как минимум скопировал здесь) написано php hello.php <name>. Не ./hello.php <name>. Shebang нужен только во втором случае, а не в первом.


Let’s write a simple “Hello, $name” CLI program. To try it out, create a file named hello.php, as below.

<?php
if ($argc !== 2) {
    echo "Usage: php hello.php <name>" . PHP_EOL;
    exit(1);
}
$name = $argv[1];
echo "Hello, $name" . PHP_EOL;

PHP sets up two special variables based on the arguments your script is run with. $argc is an integer variable containing the argument count and $argv is an array variable containing each argument’s value. The first argument is always the name of your PHP script file, in this case hello.php.

The exit() expression is used with a non-zero number to let the shell know that the command failed. Commonly used exit codes can be found here.

To run our script, above, from the command line:

> php hello.php
Usage: php hello.php <name>
> php hello.php world
Hello, world
theNamelessOne ★★★★★
()
Ответ на: комментарий от theNamelessOne

А с чего ты это вообще взял?

А зачем ещё шибанг нужен?

Shebang нужен только во втором случае, а не в первом

Ну да, я так понял, он хочет этот второй случай реализовать. Поэтому он использует basename.

fernandos ★★★
()
Последнее исправление: fernandos (всего исправлений: 1)
Ответ на: комментарий от tz4678

Теперь вы нарушаете ПСР, используйте 4 пробела, а не два.

fernandos ★★★
()
Ответ на: комментарий от fernandos

Ну да, я так понял, он хочет этот второй случай реализовать.

Кто хочет? Автор книги? Ну вроде как он об этом не пишет. @tz4678? Ну хочет и хочет, только при чём тогда претензия к автору книги?

Вроде мелочь, а учит неправильно, ШИБАНГА нет

…если в примерах автора shebang и не нужен?

theNamelessOne ★★★★★
()
Ответ на: комментарий от fernandos

А я говорил, что её поддерживаю?

Ну я отвечал изначально на претензию, я думаю, это очевидно (разве нет?)

theNamelessOne ★★★★★
()
Ответ на: комментарий от theNamelessOne

не связано. ведь похапешный код внутри тегов <?php и ?>, просто первая строка игнорируется, если она начинается с #!

tz4678 ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.