PHP & Web Development Blogs

Search Results For: build
Showing 31 to 33 of 33 blog articles.
4657 views · 5 years ago
PHP Basics

It's 2018, and you're a top-notch modern web developer, with a load of knowledge and tools right there at your disposal: Google and StackOverflow, debugger with a GUI, IDE with autocomplete, you name it. Occasionally, though, you still find yourself in a plain old text console on a remote server, or you have to do something without IDE, or there is no network connection... In such cases it might be helpful to feel comfortable in a simple terminal. In this post I'm going to list some switches for the PHP command that you can use to get information and some utilities.

Getting basic information about PHP


$ php -i
phpinfo()
PHP Version => 7.2.10-0ubuntu1

System => Linux awesome 4.18.0-10-generic #11-Ubuntu SMP Thu Oct 11 15:13:55 UTC 2018 x86_64
Build Date => Sep 13 2018 13:38:55
Server API => Command Line Interface
Virtual Directory Support => disabled
...


Full information about your PHP interpreter. Pipe the output to the Unix less command in order to get pagination and search: php -i | less. Type Q to exit the less shell. Some distros might lack less, in that case you may try php -i | more, which doesn't give you search but still has pagination.

Want a short summary of which PHP extensions you have? Just ask:

$ php -m
[PHP Modules]
calendar
Core
ctype
date
dom
ds
exif
...


More specific info about core and extensions' functions and classes


Full information about functions and classes provided by an extension:

$ php --re ds
Extension [ <persistent> extension #46 ds version 1.2.6 ] {

- Dependencies {
Dependency [ json (Required) ]
Dependency [ spl (Required) ]
}

- Classes [11] {
Interface [ <internal:ds> interface Ds\Hashable ] {

- Constants [0] {
}

- Static properties [0] {
}
...


Information on a specific class:

$ php --rc Ds\Vector
Class [ <internal:ds> <iterateable> final class Ds\Vector implements Ds\Sequence, Traversable, Countable, JsonSerializable, Ds\Collection ] {

- Constants [1] {
Constant [ public integer MIN_CAPACITY ] { 8 }
}

- Static properties [0] {
}
...


Same for a function:

$ php --rf fopen
Function [ <internal:standard> function fopen ] {

- Parameters [4] {
Parameter #0 [ <required> $filename ]
Parameter #1 [ <required> $mode ]
Parameter #2 [ <optional> $use_include_path ]
Parameter #3 [ <optional> $context ]
}
}


Utilities


Ever found yourself creating a dummy PHP file of just a few lines - only to be run once and then deleted? The -a switch might be what you're looking for:

$ php -a
Interactive mode enabled

php > var_dump(join(", ", [1, 2, 3]));
php shell code:1:
string(7) "1, 2, 3"
php >


It starts an interactive shell so you can type any PHP code and execute it straight away. Requires PHP to be compiled with readline support (most distros have that anyway).

Want a quick check for any parse/syntax errors in a PHP file? Use linter:

$ php -l test.php 
PHP Parse error: syntax error, unexpected 'array_shift' (T_STRING) in test.php on line 4
Errors parsing test.php


It has a web-server!


Yes! Just in case you missed it, as of PHP 5.4.0, the CLI SAPI provides a built-in web server. Want a quick look at a web page generated by an app? Here you go:

$ cd /my_application/document_root
$ php -S localhost:8000


Then open http://localhost:8000/ in your browser of choice and enjoy!

Hope you also have enjoyed this reading. Your feedback and questions are always appreciated!
12066 views · 5 years ago
Welcome to PHP 7.1

In case you are living under a rock, the latest version of PHP released last week. PHP developers around the world began rebuilding their development containers with it so they can run their tests. Now it’s your turn. If you haven’t already installed it, you can download it here http://php.net/downloads.php Grab it, get it running in your development environment, and run those unit tests. If all goes well, you can begin planning your staged deployment to production.

If you need a quick start guide to get you going, our good friend Mr Colin O’Dell has just the thing for you “Installing PHP 7.1”. It’ll get you up and going quickly on PHP 7.1.

What’s the big deal about PHP 7.1? I am so glad you asked. Here are the major new features released in PHP 7.1.

* Nullable types
* Void return type
* Iterable pseudo-type
* Class constant visiblity modifiers
* Square bracket syntax for list() and the ability to specify keys in list()
* Catching multiple exceptions types

Now if you want a quick intro to several of these new features, check out our “RFCs of the Future” playlist on YouTube. In it, I talk about 4 of the new features.

Oh and while you are watching things download & compile, why not take the time to give a shoutout to all the core contributors, and a special thank you to Davey Shafik and Joe Watkins, the PHP 7.1 release managers.

Cheers!
=C=
139 views · 3 weeks ago


In today's dynamic and fast-paced world of web development, ensuring the reliability, performance, and scalability of applications is paramount. Monitoring and observability tools play a crucial role in achieving these goals by providing insights into application metrics, performance trends, and system health. Prometheus, a popular open-source monitoring and alerting toolkit, offers robust capabilities for monitoring infrastructure and application metrics. In this article, we'll explore how to leverage Prometheus with PHP to monitor, analyze, and troubleshoot PHP-based applications effectively.

Understanding Prometheus:


Prometheus is an open-source monitoring and alerting system originally developed by SoundCloud. It is designed for reliability, scalability, and extensibility, making it suitable for monitoring complex, distributed systems. Key features of Prometheus include:

Time Series Data: Prometheus collects time-series data, allowing developers to track metrics such as CPU usage, memory consumption, request latency, and HTTP response codes over time.

PromQL: Prometheus Query Language (PromQL) enables users to query and aggregate metrics, create custom dashboards, and set up alerting rules based on specific conditions.

Scalability and Reliability: Prometheus is designed to be highly scalable and reliable, supporting a distributed architecture with multiple replicas and federated setups for global monitoring.

Integrating Prometheus with PHP:


To integrate Prometheus with PHP applications, developers can utilize client libraries and instrumentation libraries that facilitate metric collection and exposition. The following steps outline the process of integrating Prometheus with PHP:

Choose a Prometheus Client Library: Select a Prometheus client library for PHP that suits your needs. Popular options include prometheus/client_php and php-prometheus/client.

Instrument Your PHP Code: Instrument your PHP application code to collect relevant metrics. This involves adding instrumentation code to track metrics such as request duration, memory usage, database queries, and custom business metrics.

Exposing Metrics: Expose the collected metrics in a format compatible with Prometheus. This typically involves exposing an HTTP endpoint (e.g., /metrics) where Prometheus can scrape the metrics using the Prometheus exposition format.

Configure Prometheus Server: Configure the Prometheus server to scrape metrics from the PHP application's endpoint. Update the Prometheus configuration file (prometheus.yml) to include the target endpoint and define any additional scraping parameters.

Example Integration:


Let's illustrate how to integrate Prometheus with a PHP application using the prometheus/client_php library:

require 'vendor/autoload.php';

use Prometheus\CollectorRegistry;
use Prometheus\Storage\APC;
use Prometheus\RenderTextFormat;

$registry = new CollectorRegistry(new APC());

$requestDuration = $registry->registerCounter('php_requests_total', 'Total number of PHP requests');

$requestDuration->inc();

$renderer = new RenderTextFormat();
echo $renderer->render($registry->getMetricFamilySamples());


In this example, we register a custom metric (php_requests_total) to track the total number of PHP requests. We then increment this metric for each request and expose the metrics endpoint using the Prometheus exposition format.

Benefits of Using Prometheus with PHP:


Real-time Monitoring: Prometheus provides real-time monitoring capabilities, allowing developers to monitor application metrics and diagnose issues promptly.

Scalability: Prometheus scales horizontally, making it suitable for monitoring large-scale deployments and distributed systems.

Alerting: Prometheus supports alerting based on predefined rules, enabling proactive monitoring and alerting for potential issues or anomalies.

Integration: Prometheus integrates seamlessly with various programming languages, platforms, and frameworks, including PHP, enabling comprehensive monitoring across the entire technology stack.

Conclusion:


Prometheus offers powerful capabilities for monitoring and observability, making it a valuable tool for developers and DevOps teams tasked with ensuring the reliability and performance of PHP applications. By integrating Prometheus with PHP using client libraries and instrumentation, developers can gain valuable insights into application metrics, troubleshoot issues effectively, and proactively respond to performance anomalies. Embracing Prometheus as part of your monitoring strategy empowers organizations to build resilient, scalable, and high-performing PHP applications in today's dynamic digital landscape.

SPONSORS