SlideShare a Scribd company logo
Extending PHP (7.x)
How to, when and when not
Pierre Joye
@pierrejoye
pierre@php.net
http://www.slideshare.net/pierrej
PHP Core developer
Contributors to numerous OSS projects
Portability fan
hiring@BK
K
When to use custom
extensions?
PHP 7 is fast.
PHP will be even faster.
OpCache rocks.
IOs are slow.
Streams are easy.
File Ops are easy.
zval
• Integer > zend_long
• Booleans > types, IS_TRUE/IS_FALSE
• Strings > zend_string
• Float > double
• Object > zend_object
• Resource
Hash Tables
• Array (zval > array > hash table)
• Functions table
• Classes, properties, etc.
Classes
• Classes declaration
Zend/zend_types.h
your best friend.
typedef struct _zval_struct zval;
struct _zval_struct {
zend_value value; /* value */
union {
struct {
ZEND_ENDIAN_LOHI_4(
zend_uchar type, /* active type */
zend_uchar type_flags,
zend_uchar const_flags,
zend_uchar reserved) /* call info for EX(This)*/
} v;
uint32_t type_info;
} u1;
....
};
Hash tables
Hash tables are not arrays!
Hash tables elements can
contain ANYTHING
Zend/zend_hash.h
Your second best buddy
Let get started
Requirements *nix
• Common
• A shell
• editor
• Gcc 5+
• php7-dev
• Autoconf, autotools and co
Requirements Windows
• Common
• A shell
• php-sdk (http://windows.php.net/downloads/php-sdk/)
• vc (14+) for Windows
• php binary tools
(http://windows.php.net/downloads/php-sdk/)
• Setup your sdk structure according to
https://wiki.php.net/internals/windows/stepbystepbuild
Extension directory structure
myext
config.w32
Build script for windows
config.m4
Build script for *nix
php_myext.c
Implementation
php_myext.h
Interface & meta data
Tests
myext tests
myext.phpt
config.w32
// $Id$ // vim:ft=javascript
ARG_ENABLE("myext", "myext support", "yes");
if (PHP_MYEXT == "yes") {
EXTENSION("myext", "php_myext.c");
}
config.m4
dnl Tell PHP about the argument to enable the hello extension
PHP_ARG_ENABLE(myext, Whether to enable the myext extension, [ --enable-myext Enable myext])
if test "$PHP_MYEXT" != "no"; then
PHP_NEW_EXTENSION(myext, php_myext.c, $ext_shared)
fi
Our first function
function myext_hello() {
echo "Hello Manila!";
}
php_myext.h
#define PHP_MYEXT_EXTNAME "myext“
#define PHP_MYEXT_VERSION "0.0.1"
PHP_FUNCTION(myext_hello);
php_myext.c
#include <php.h>
#include "php_myext.h"
include php common interfaces and
types
php_myext.c
Define myext_hello functions and commons
hooks&data for myext
zend_function_entry myext_functions[] = {
PHP_FE(myext_hello, NULL)
PHP_FE_END
};
zend_module_entry myext_module_entry = {
STANDARD_MODULE_HEADER,
PHP_MYEXT_EXTNAME,
myext_functions,
NULL,
NULL, NULL, NULL, NULL,
PHP_MYEXT_VERSION,
STANDARD_MODULE_PROPERTIES,
};
zend_value
Define myext_hello functions and commons
hooks&data for myext
typedef union _zend_value {
zend_long lval; /* long value */
double dval; /* double value */
zend_refcounted *counted;
zend_string *str;
zend_array *arr;
zend_object *obj;
zend_resource *res;
zend_reference *ref;
zend_ast_ref *ast;
zval *zv; void *ptr;
zend_class_entry *ce;
zend_function *func;
struct { uint32_t w1; uint32_t w2; }ww;
} zend_value;
php_myext.c
print „Hello Manilla!n“ to php standard
output
PHP_FUNCTION(myext_hello) {
php_printf("Hello Manila!n");
};
First build
All platforms:
$ phpize
$ configure –enable-myext
For *nix flavors:
$ make
For Windows:
$ nmake
first function, with a string
argument
function myext_print(string $mystring) {
echo "Hello " . $mystring . "!n";
}
first function, with a string
argument
PHP_FUNCTION(myext_print) {
char *mystring;
size_t mystring_len;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &mystring, &mystring_len) ==
FAILURE) {
return;
}
php_printf("Hello %s!! (%i)n", mystring, mystring_len);
return
}
first function, with an integer
argument
function myext_integer(int $myint) {
if ($myint > 0) {
for ($i = 0; $i < $myint; $i++) {
echo "Hello " . $i . "!n";
}
}
}
first function, with an integer
argument
PHP_FUNCTION(myext_print_integer) {
zend_long lval;
int i;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"l", &lval) == FAILURE) {
return;
}
if (lval > 0) {
for (i=0; i < lval; i++) {
php_printf("Hello %in",i);
}
}
return;
}
first function, with an array
argument
function myext_print_array(array $myarray) {
foreach ($myarray as $val) {
echo "hello ". $val . "n";
}
}
first function, with an array
argument
PHP_FUNCTION(myext_print_array) {
zval *myarray = NULL;
zend_string *key;
zend_ulong num_key;
zval *val;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "a", &myarray) ==
FAILURE) {
return;
}
ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(myarray), num_key, key,
val) {
php_printf("Hello %sn", Z_STRVAL_P(val));
}
ZEND_HASH_FOREACH_END();
return;
}
home work
• First class
• Zend Memory Manager
• Use tools like valgrind
• Use external libraries
• Debugging using gdb or vs debugger
resources
• https://wiki.php.net/phpng-upgrading
• https://nikic.github.io/
• https://wiki.php.net/internals/
• http://www.phpinternalsbook.com/
• http://jpauli.github.io/
• https://github.com/php/php-src

More Related Content

What's hot

POWER GENERATION FROM SPEED BREAKER
POWER GENERATION FROM SPEED BREAKERPOWER GENERATION FROM SPEED BREAKER
POWER GENERATION FROM SPEED BREAKER
shiv kapil
 
Laser warning system
Laser warning systemLaser warning system
Laser warning system
drdo012345
 
Generation of electricity through speed breaker mechanism(AVANTHI CLG MAKAVAR...
Generation of electricity through speed breaker mechanism(AVANTHI CLG MAKAVAR...Generation of electricity through speed breaker mechanism(AVANTHI CLG MAKAVAR...
Generation of electricity through speed breaker mechanism(AVANTHI CLG MAKAVAR...
Aditya Guna
 
Bladeless wind mill ppt
Bladeless wind mill pptBladeless wind mill ppt
Bladeless wind mill ppt
suneelkadium
 
Free space optics communication
Free space optics communicationFree space optics communication
Free space optics communication
Er Rajan Mishra
 
Optical fibre
Optical fibreOptical fibre
Optical fibre
Saumya Ranjan Behura
 
Performance issues in Cloud Computing
Performance issues in Cloud ComputingPerformance issues in Cloud Computing
Performance issues in Cloud Computing
Krishna Mohan Mishra
 
Silicon Photonics for Extreme Computing - Challenges and Opportunities
Silicon Photonics for Extreme Computing - Challenges and OpportunitiesSilicon Photonics for Extreme Computing - Challenges and Opportunities
Silicon Photonics for Extreme Computing - Challenges and Opportunities
inside-BigData.com
 

What's hot (8)

POWER GENERATION FROM SPEED BREAKER
POWER GENERATION FROM SPEED BREAKERPOWER GENERATION FROM SPEED BREAKER
POWER GENERATION FROM SPEED BREAKER
 
Laser warning system
Laser warning systemLaser warning system
Laser warning system
 
Generation of electricity through speed breaker mechanism(AVANTHI CLG MAKAVAR...
Generation of electricity through speed breaker mechanism(AVANTHI CLG MAKAVAR...Generation of electricity through speed breaker mechanism(AVANTHI CLG MAKAVAR...
Generation of electricity through speed breaker mechanism(AVANTHI CLG MAKAVAR...
 
Bladeless wind mill ppt
Bladeless wind mill pptBladeless wind mill ppt
Bladeless wind mill ppt
 
Free space optics communication
Free space optics communicationFree space optics communication
Free space optics communication
 
Optical fibre
Optical fibreOptical fibre
Optical fibre
 
Performance issues in Cloud Computing
Performance issues in Cloud ComputingPerformance issues in Cloud Computing
Performance issues in Cloud Computing
 
Silicon Photonics for Extreme Computing - Challenges and Opportunities
Silicon Photonics for Extreme Computing - Challenges and OpportunitiesSilicon Photonics for Extreme Computing - Challenges and Opportunities
Silicon Photonics for Extreme Computing - Challenges and Opportunities
 

Similar to Extending php (7), the basics

Create your own PHP extension, step by step - phpDay 2012 Verona
Create your own PHP extension, step by step - phpDay 2012 VeronaCreate your own PHP extension, step by step - phpDay 2012 Verona
Create your own PHP extension, step by step - phpDay 2012 Verona
Patrick Allaert
 
Php Extensions for Dummies
Php Extensions for DummiesPhp Extensions for Dummies
Php Extensions for DummiesElizabeth Smith
 
SyScan Singapore 2010 - Returning Into The PHP-Interpreter
SyScan Singapore 2010 - Returning Into The PHP-InterpreterSyScan Singapore 2010 - Returning Into The PHP-Interpreter
SyScan Singapore 2010 - Returning Into The PHP-Interpreter
Stefan Esser
 
Php extensions
Php extensionsPhp extensions
Php extensions
Elizabeth Smith
 
"Развитие ветки PHP-7"
"Развитие ветки PHP-7""Развитие ветки PHP-7"
"Развитие ветки PHP-7"
Badoo Development
 
Как мы сделали PHP 7 в два раза быстрее PHP 5 / Дмитрий Стогов (Zend Technolo...
Как мы сделали PHP 7 в два раза быстрее PHP 5 / Дмитрий Стогов (Zend Technolo...Как мы сделали PHP 7 в два раза быстрее PHP 5 / Дмитрий Стогов (Zend Technolo...
Как мы сделали PHP 7 в два раза быстрее PHP 5 / Дмитрий Стогов (Zend Technolo...
Ontico
 
Zf2 phpquebec
Zf2 phpquebecZf2 phpquebec
Zf2 phpquebec
mkherlakian
 
PHP7 - The New Engine for old good train
PHP7 - The New Engine for old good trainPHP7 - The New Engine for old good train
PHP7 - The New Engine for old good train
Xinchen Hui
 
Decoupled Libraries for PHP
Decoupled Libraries for PHPDecoupled Libraries for PHP
Decoupled Libraries for PHPPaul Jones
 
The Php Life Cycle
The Php Life CycleThe Php Life Cycle
The Php Life CycleXinchen Hui
 
Fatc
FatcFatc
A quick start on Zend Framework 2
A quick start on Zend Framework 2A quick start on Zend Framework 2
A quick start on Zend Framework 2
Enrico Zimuel
 
Php opcodes sep2008
Php opcodes sep2008Php opcodes sep2008
Php opcodes sep2008bengiuliano
 
External Language Stored Procedures for MySQL
External Language Stored Procedures for MySQLExternal Language Stored Procedures for MySQL
External Language Stored Procedures for MySQLAntony T Curtis
 
PHP 8: Process & Fixing Insanity
PHP 8: Process & Fixing InsanityPHP 8: Process & Fixing Insanity
PHP 8: Process & Fixing Insanity
GeorgePeterBanyard
 
Scaling php applications with redis
Scaling php applications with redisScaling php applications with redis
Scaling php applications with redis
jimbojsb
 
Php7 extensions workshop
Php7 extensions workshopPhp7 extensions workshop
Php7 extensions workshop
julien pauli
 
Php’s guts
Php’s gutsPhp’s guts
Php’s guts
Elizabeth Smith
 
Zend Framework
Zend FrameworkZend Framework
Zend Framework
Hao Chen 陈浩
 

Similar to Extending php (7), the basics (20)

Create your own PHP extension, step by step - phpDay 2012 Verona
Create your own PHP extension, step by step - phpDay 2012 VeronaCreate your own PHP extension, step by step - phpDay 2012 Verona
Create your own PHP extension, step by step - phpDay 2012 Verona
 
Php Extensions for Dummies
Php Extensions for DummiesPhp Extensions for Dummies
Php Extensions for Dummies
 
SyScan Singapore 2010 - Returning Into The PHP-Interpreter
SyScan Singapore 2010 - Returning Into The PHP-InterpreterSyScan Singapore 2010 - Returning Into The PHP-Interpreter
SyScan Singapore 2010 - Returning Into The PHP-Interpreter
 
Php extensions
Php extensionsPhp extensions
Php extensions
 
"Развитие ветки PHP-7"
"Развитие ветки PHP-7""Развитие ветки PHP-7"
"Развитие ветки PHP-7"
 
Как мы сделали PHP 7 в два раза быстрее PHP 5 / Дмитрий Стогов (Zend Technolo...
Как мы сделали PHP 7 в два раза быстрее PHP 5 / Дмитрий Стогов (Zend Technolo...Как мы сделали PHP 7 в два раза быстрее PHP 5 / Дмитрий Стогов (Zend Technolo...
Как мы сделали PHP 7 в два раза быстрее PHP 5 / Дмитрий Стогов (Zend Technolo...
 
Writing MySQL UDFs
Writing MySQL UDFsWriting MySQL UDFs
Writing MySQL UDFs
 
Zf2 phpquebec
Zf2 phpquebecZf2 phpquebec
Zf2 phpquebec
 
PHP7 - The New Engine for old good train
PHP7 - The New Engine for old good trainPHP7 - The New Engine for old good train
PHP7 - The New Engine for old good train
 
Decoupled Libraries for PHP
Decoupled Libraries for PHPDecoupled Libraries for PHP
Decoupled Libraries for PHP
 
The Php Life Cycle
The Php Life CycleThe Php Life Cycle
The Php Life Cycle
 
Fatc
FatcFatc
Fatc
 
A quick start on Zend Framework 2
A quick start on Zend Framework 2A quick start on Zend Framework 2
A quick start on Zend Framework 2
 
Php opcodes sep2008
Php opcodes sep2008Php opcodes sep2008
Php opcodes sep2008
 
External Language Stored Procedures for MySQL
External Language Stored Procedures for MySQLExternal Language Stored Procedures for MySQL
External Language Stored Procedures for MySQL
 
PHP 8: Process & Fixing Insanity
PHP 8: Process & Fixing InsanityPHP 8: Process & Fixing Insanity
PHP 8: Process & Fixing Insanity
 
Scaling php applications with redis
Scaling php applications with redisScaling php applications with redis
Scaling php applications with redis
 
Php7 extensions workshop
Php7 extensions workshopPhp7 extensions workshop
Php7 extensions workshop
 
Php’s guts
Php’s gutsPhp’s guts
Php’s guts
 
Zend Framework
Zend FrameworkZend Framework
Zend Framework
 

More from Pierre Joye

Php 7.x 8.0 and hhvm and
Php 7.x 8.0 and hhvm and Php 7.x 8.0 and hhvm and
Php 7.x 8.0 and hhvm and
Pierre Joye
 
Php7 hhvm and co
Php7 hhvm and coPhp7 hhvm and co
Php7 hhvm and co
Pierre Joye
 
Php 7 hhvm and co
Php 7 hhvm and coPhp 7 hhvm and co
Php 7 hhvm and co
Pierre Joye
 
Php core. get rid of bugs and contribute
Php core. get rid of bugs and contributePhp core. get rid of bugs and contribute
Php core. get rid of bugs and contribute
Pierre Joye
 
Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18Pierre Joye
 
Devcon hh-2012
Devcon hh-2012Devcon hh-2012
Devcon hh-2012
Pierre Joye
 
Short Intro talk to IPC/Berlin 2012
Short Intro talk to IPC/Berlin 2012Short Intro talk to IPC/Berlin 2012
Short Intro talk to IPC/Berlin 2012
Pierre Joye
 
Intro ipcberlin2012
Intro ipcberlin2012Intro ipcberlin2012
Intro ipcberlin2012Pierre Joye
 
Webdevcon pierrejoye-php54-and-other
Webdevcon pierrejoye-php54-and-otherWebdevcon pierrejoye-php54-and-other
Webdevcon pierrejoye-php54-and-other
Pierre Joye
 
Php symfony and software lifecycle
Php symfony and software lifecyclePhp symfony and software lifecycle
Php symfony and software lifecyclePierre Joye
 
Mongodb - drupal dev days
Mongodb - drupal dev daysMongodb - drupal dev days
Mongodb - drupal dev days
Pierre Joye
 
Webplatform And Php
Webplatform And PhpWebplatform And Php
Webplatform And Php
Pierre Joye
 
Keynote, PHP World Kongress Munich
Keynote, PHP World Kongress MunichKeynote, PHP World Kongress Munich
Keynote, PHP World Kongress Munich
Pierre Joye
 
Php On Windows
Php On WindowsPhp On Windows
Php On Windows
Pierre Joye
 
Php On Windows Internals
Php On Windows InternalsPhp On Windows Internals
Php On Windows Internals
Pierre Joye
 
Test Fest 2009
Test Fest 2009Test Fest 2009
Test Fest 2009
Pierre Joye
 
PHP Worl Kongress Munich
PHP Worl Kongress MunichPHP Worl Kongress Munich
PHP Worl Kongress Munich
Pierre Joye
 
Developing PHP internals on Windows
Developing PHP internals on WindowsDeveloping PHP internals on Windows
Developing PHP internals on Windows
Pierre Joye
 

More from Pierre Joye (18)

Php 7.x 8.0 and hhvm and
Php 7.x 8.0 and hhvm and Php 7.x 8.0 and hhvm and
Php 7.x 8.0 and hhvm and
 
Php7 hhvm and co
Php7 hhvm and coPhp7 hhvm and co
Php7 hhvm and co
 
Php 7 hhvm and co
Php 7 hhvm and coPhp 7 hhvm and co
Php 7 hhvm and co
 
Php core. get rid of bugs and contribute
Php core. get rid of bugs and contributePhp core. get rid of bugs and contribute
Php core. get rid of bugs and contribute
 
Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18
 
Devcon hh-2012
Devcon hh-2012Devcon hh-2012
Devcon hh-2012
 
Short Intro talk to IPC/Berlin 2012
Short Intro talk to IPC/Berlin 2012Short Intro talk to IPC/Berlin 2012
Short Intro talk to IPC/Berlin 2012
 
Intro ipcberlin2012
Intro ipcberlin2012Intro ipcberlin2012
Intro ipcberlin2012
 
Webdevcon pierrejoye-php54-and-other
Webdevcon pierrejoye-php54-and-otherWebdevcon pierrejoye-php54-and-other
Webdevcon pierrejoye-php54-and-other
 
Php symfony and software lifecycle
Php symfony and software lifecyclePhp symfony and software lifecycle
Php symfony and software lifecycle
 
Mongodb - drupal dev days
Mongodb - drupal dev daysMongodb - drupal dev days
Mongodb - drupal dev days
 
Webplatform And Php
Webplatform And PhpWebplatform And Php
Webplatform And Php
 
Keynote, PHP World Kongress Munich
Keynote, PHP World Kongress MunichKeynote, PHP World Kongress Munich
Keynote, PHP World Kongress Munich
 
Php On Windows
Php On WindowsPhp On Windows
Php On Windows
 
Php On Windows Internals
Php On Windows InternalsPhp On Windows Internals
Php On Windows Internals
 
Test Fest 2009
Test Fest 2009Test Fest 2009
Test Fest 2009
 
PHP Worl Kongress Munich
PHP Worl Kongress MunichPHP Worl Kongress Munich
PHP Worl Kongress Munich
 
Developing PHP internals on Windows
Developing PHP internals on WindowsDeveloping PHP internals on Windows
Developing PHP internals on Windows
 

Recently uploaded

CW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERS
CW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERSCW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERS
CW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERS
veerababupersonal22
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
Kamal Acharya
 
Unbalanced Three Phase Systems and circuits.pptx
Unbalanced Three Phase Systems and circuits.pptxUnbalanced Three Phase Systems and circuits.pptx
Unbalanced Three Phase Systems and circuits.pptx
ChristineTorrepenida1
 
Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
Kamal Acharya
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
JoytuBarua2
 
Technical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prismsTechnical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prisms
heavyhaig
 
Steel & Timber Design according to British Standard
Steel & Timber Design according to British StandardSteel & Timber Design according to British Standard
Steel & Timber Design according to British Standard
AkolbilaEmmanuel1
 
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdfAKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
SamSarthak3
 
Water billing management system project report.pdf
Water billing management system project report.pdfWater billing management system project report.pdf
Water billing management system project report.pdf
Kamal Acharya
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
SUTEJAS
 
DESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABS
DESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABSDESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABS
DESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABS
itech2017
 
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdfGoverning Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
WENKENLI1
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
Pratik Pawar
 
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
ydteq
 
Investor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptxInvestor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptx
AmarGB2
 
Building Electrical System Design & Installation
Building Electrical System Design & InstallationBuilding Electrical System Design & Installation
Building Electrical System Design & Installation
symbo111
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
bakpo1
 
DfMAy 2024 - key insights and contributions
DfMAy 2024 - key insights and contributionsDfMAy 2024 - key insights and contributions
DfMAy 2024 - key insights and contributions
gestioneergodomus
 
14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application
SyedAbiiAzazi1
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation & Control
 

Recently uploaded (20)

CW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERS
CW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERSCW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERS
CW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERS
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
 
Unbalanced Three Phase Systems and circuits.pptx
Unbalanced Three Phase Systems and circuits.pptxUnbalanced Three Phase Systems and circuits.pptx
Unbalanced Three Phase Systems and circuits.pptx
 
Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
 
Technical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prismsTechnical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prisms
 
Steel & Timber Design according to British Standard
Steel & Timber Design according to British StandardSteel & Timber Design according to British Standard
Steel & Timber Design according to British Standard
 
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdfAKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
 
Water billing management system project report.pdf
Water billing management system project report.pdfWater billing management system project report.pdf
Water billing management system project report.pdf
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
 
DESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABS
DESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABSDESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABS
DESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABS
 
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdfGoverning Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
 
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
 
Investor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptxInvestor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptx
 
Building Electrical System Design & Installation
Building Electrical System Design & InstallationBuilding Electrical System Design & Installation
Building Electrical System Design & Installation
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
 
DfMAy 2024 - key insights and contributions
DfMAy 2024 - key insights and contributionsDfMAy 2024 - key insights and contributions
DfMAy 2024 - key insights and contributions
 
14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
 

Extending php (7), the basics