Системные вызовы очень часто могут быть быстрее, чем использование решения, встроенного в PHP (хотя это не всегда верно, поскольку сами функции PHP создаются и компилируются в C. Многие основные функции и расширения PHP работают довольно быстро).
Помимо скорости, вторым фактором является ограничение памяти.Внешне вызываемые процессы не поглощают ограничение PHP для каждого сценария, что может быть полезно при работе, например, с большими файлами.
Кроме того, некоторые функции просто недоступны в самом PHP.Например, невозможно полностью имитировать набор функций ImageMagick в PHP.Библиотека GD не приближается к тому, что может предложить ImageMagick.
Большой, большой минус в том, что с помощью системных команд вы эффективно устраняете переносимость, которая является частью красоты PHP.Перемещение приложения на другой сервер становится огромным бременем, потому что набор функций внешних команд должен быть одинаковым - и это не всегда так даже в разных дистрибутивах Linux, не говоря уже о пересечении границы ОС в Windows или UnixMac OS на базеЯ сам испытывал проблемы с wget
и ImageMagick в этом отношении, я уверен, что их гораздо больше.
Если вы работаете над пользовательским приложением, для которого вы полностью управляете серверной средой (и принимаете решениекакие серверы будут куплены в ближайшие пять лет), это может не быть проблемой.Тем не менее, он будет одним, если вы создаете программное обеспечение, которое должно быть переносимым.
Лично я склонен скорее исключать функцию (которая потребует внешней зависимости), чем терять переносимость, но в то же время я очень занят созданием портативных приложений.Это действительно зависит от вашего внимания.