Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

PHP Tutorial

Introduction to PHP

PHP (Hypertext Preprocessor) is a popular server-side scripting language designed for web development. It is also used as a general-purpose programming language. PHP code is executed on the server, and the result is returned to the browser as plain HTML.

Getting Started with PHP

To start using PHP, you need to install a web server like Apache, and PHP itself. One of the easiest ways to set up a PHP environment is by using XAMPP, which includes Apache, MySQL, and PHP.

Example:
echo "Hello, World!";

Basic Syntax

PHP scripts are enclosed in <?php ... ?> tags. Statements end with a semicolon (;). Variables in PHP start with the $ symbol.

Example:
<?php
$txt = "Hello, World!";
echo $txt;
?>

Variables and Data Types

PHP supports various data types including strings, integers, floats, booleans, arrays, objects, and NULL.

Example:
<?php
$string = "Hello, PHP!";
$int = 42;
$float = 3.14;
$bool = true;
$array = array("foo", "bar", "baz");
?>

Control Structures

PHP supports various control structures, including if-else statements, switch-case, while loops, for loops, and foreach loops.

Example:
<?php
$x = 10;
if ($x > 5) {
echo "x is greater than 5";
} else {
echo "x is not greater than 5";
}
?>

Functions

Functions are reusable pieces of code that perform a specific task. They can take arguments and return values.

Example:
<?php
function greet($name) {
return "Hello, " . $name;
}
echo greet("World");
?>

Working with Forms

PHP can collect form data and process it. Forms are created using HTML, and the form data is sent to the server using the POST or GET methods.

Example:
<form method="post" action="welcome.php">
Name: <input type="text" name="name">
<input type="submit">
</form>

Database Connection

PHP can connect to databases like MySQL to store and retrieve data. You can use the mysqli or PDO extension for database operations.

Example:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

Introduction to Kafka with PHP

Apache Kafka is a distributed event streaming platform. It is used to build real-time data pipelines and streaming applications. PHP can be integrated with Kafka to produce and consume messages.

Installing Kafka PHP Libraries

To work with Kafka in PHP, you can use the php-rdkafka extension. You can install it using PECL:

Command:
pecl install rdkafka

Producing Messages to Kafka

To produce messages to a Kafka topic, you need to create a producer object and send messages to the specified topic.

Example:
<?php
$conf = new RdKafka\Conf();
$conf->set('bootstrap.servers', 'localhost:9092');

$producer = new RdKafka\Producer($conf);
$topic = $producer->newTopic("test_topic");

for ($i = 0; $i < 10; $i++) {
$topic->produce(RD_KAFKA_PARTITION_UA, 0, "Message $i");
$producer->poll(0);
}

while ($producer->getOutQLen() > 0) {
$producer->poll(50);
}
?>

Consuming Messages from Kafka

To consume messages from a Kafka topic, you need to create a consumer object and subscribe to the specified topic.

Example:
<?php
$conf = new RdKafka\Conf();
$conf->set('group.id', 'myConsumerGroup');
$conf->set('metadata.broker.list', 'localhost:9092');

$consumer = new RdKafka\KafkaConsumer($conf);
$consumer->subscribe(['test_topic']);

echo "Waiting for messages...\n";
while (true) {
$message = $consumer->consume(120*1000);
switch ($message->err) {
case RD_KAFKA_RESP_ERR_NO_ERROR:
echo "Received message: " . $message->payload . "\n";
break;
case RD_KAFKA_RESP_ERR_TIMED_OUT:
echo "Timed out\n";
break;
default:
echo "Error: " . $message->errstr() . "\n";
break;
}
}
?>

Conclusion

In this tutorial, we have covered the basics of PHP, including its syntax, variables, control structures, functions, and working with forms. We also explored how to integrate PHP with Kafka to produce and consume messages. With these fundamentals, you can start building dynamic web applications and real-time streaming solutions.