You are on page 1of 16

PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open

source general-purpose scripting language that is especially suited for web


development and can be embedded into HTML.
Instead of lots of commands to output HTML (as seen in C or Perl), PHP pages
contain HTML with embedded code that does "something" (in this case, output "Hi,
I'm a PHP script!"). The PHP code is enclosed in special start and end processing
instructions <?php and ?> that allow you to jump into and out of "PHP mode."

What distinguishes PHP from something like client-side JavaScript is that the code is
executed on the server, generating HTML which is then sent to the client. The client
would receive the results of running that script, but would not know what the
underlying code was. You can even configure your web server to process all your
HTML files with PHP, and then there's really no way that users can tell what you
have up your sleeve.

The best things in using PHP are that it is extremely simple for a newcomer, but
offers many advanced features for a professional programmer. Don't be afraid
reading the long list of PHP's features. You can jump in, in a short time, and start
writing simple scripts in a few hours.

Features
In PHP there is no need to specify data type for variable declaration. Rather, it can
be determined at the time of execution depends on the value of the variable. So
that, PHP is called as loosely typed language.
PHP provides cross platform compatibility, unlike some other server side scripting
language.
PHP has set of pre defined variables called superglobals which will be start by _.
Some of the examples are, $_GET, $_POST, $_COOKIE, $_SESSION, $_SERVER and
etc. So, any variable except superglobals, that are start with _ will cause error.
PHP programming structure includes variable variables; that is, the name of the
variable can be change dynamically.
This language contains access monitoring capability to create logs as the summary
of recent accesses.

And then, it includes several magic methods that begins with __ character which will
be defined and called at appropriate instance. For example, __clone() will be called,
when the clone keyword is used.
Predefined error reporting constants are available to generate a warning or error
notice. For example, when E_STRICT is enabled, a warning about deprecated
methods will be generated.
PHP supports extended regular expression that leads extensive pattern matching
with remarkable speed.
And then, properties like, nowdocs and heredocs are used to delimit some block of
context which should not be sent for parsing.
Since PHP is a single inheritance language, the parent class methods can be derived
by only one directly inherited sub class. But, the implementation of traits concept,
reduce the gap over this limitation and allow to reuse required method in several
classes.

MySQL, the most popular Open Source SQL database management system, is
developed, distributed, and supported by Oracle Corporation.

The MySQL Web site (http://www.mysql.com/) provides the latest information about
MySQL software.

MySQL is a database management system.

A database is a structured collection of data. It may be anything from a simple


shopping list to a picture gallery or the vast amounts of information in a corporate
network. To add, access, and process data stored in a computer database, you need
a database management system such as MySQL Server. Since computers are very
good at handling large amounts of data, database management systems play a
central role in computing, as standalone utilities, or as parts of other applications.

MySQL databases are relational.

A relational database stores data in separate tables rather than putting all the data
in one big storeroom. The database structures are organized into physical files
optimized for speed. The logical model, with objects such as databases, tables,
views, rows, and columns, offers a flexible programming environment. You set up
rules governing the relationships between different data fields, such as one-to-one,
one-to-many, unique, required or optional, and pointers between different tables.
The database enforces these rules, so that with a well-designed database, your
application never sees inconsistent, duplicate, orphan, out-of-date, or missing data.

The SQL part of MySQL stands for Structured Query Language. SQL is the most
common standardized language used to access databases. Depending on your
programming environment, you might enter SQL directly (for example, to generate
reports), embed SQL statements into code written in another language, or use a
language-specific API that hides the SQL syntax.

SQL is defined by the ANSI/ISO SQL Standard. The SQL standard has been evolving
since 1986 and several versions exist. In this manual, SQL-92 refers to the
standard released in 1992, SQL:1999 refers to the standard released in 1999, and
SQL:2003 refers to the current version of the standard. We use the phrase the
SQL standard to mean the current version of the SQL Standard at any time.

MySQL software is Open Source.

Open Source means that it is possible for anyone to use and modify the software.
Anybody can download the MySQL software from the Internet and use it without
paying anything. If you wish, you may study the source code and change it to suit
your needs. The MySQL software uses the GPL (GNU General Public License),
http://www.fsf.org/licenses/, to define what you may and may not do with the
software in different situations. If you feel uncomfortable with the GPL or need to
embed MySQL code into a commercial application, you can buy a commercially
licensed version from us. See the MySQL Licensing Overview for more information
(http://www.mysql.com/company/legal/licensing/).

The MySQL Database Server is very fast, reliable, scalable, and easy to use.

If that is what you are looking for, you should give it a try. MySQL Server can run
comfortably on a desktop or laptop, alongside your other applications, web servers,
and so on, requiring little or no attention. If you dedicate an entire machine to
MySQL, you can adjust the settings to take advantage of all the memory, CPU
power, and I/O capacity available. MySQL can also scale up to clusters of machines,
networked together.

You can find a performance comparison of MySQL Server with other database
managers on our benchmark page. See The MySQL Benchmark Suite.

MySQL Server was originally developed to handle large databases much faster than
existing solutions and has been successfully used in highly demanding production
environments for several years. Although under constant development, MySQL
Server today offers a rich and useful set of functions. Its connectivity, speed, and
security make MySQL Server highly suited for accessing databases on the Internet.

MySQL Server works in client/server or embedded systems.

The MySQL Database Software is a client/server system that consists of a multithreaded SQL server that supports different backends, several different client
programs and libraries, administrative tools, and a wide range of application
programming interfaces (APIs).

We also provide MySQL Server as an embedded multi-threaded library that you can
link into your application to get a smaller, faster, easier-to-manage standalone
product.

A large amount of contributed MySQL software is available.

MySQL Server has a practical set of features developed in close cooperation with
our users. It is very likely that your favorite application or language supports the
MySQL Database Server.
--------

LAMP ARCHITECTURE

LAMP is an open source Web development platform that uses Linux as the operating
system, Apache as the Web server, MySQL as the relational database management
system and PHP as the object-oriented scripting language. (Sometimes Perl or
Python is used instead of PHP.)

DEFINITION
LAMP (Linux, Apache, MySQL, PHP)

Posted by: Margaret Rouse


WhatIs.com

Sponsored News
The End of the Forklift Upgrade With Scale-Out Storage
SolidFire
Systems Management Getting too Complicated?

Dell
See More
Vendor Resources
Red Hat Software Collections: Bridging Development Agility and Production ...
Red Hat
Red Hat Enterprise Linux vs. Microsoft Windows Server 2008. Who wins?
Red Hat
LAMP is an open source Web development platform that uses Linux as the operating
system, Apache as the Web server, MySQL as the relational database management
system and PHP as the object-oriented scripting language. (Sometimes Perl or
Python is used instead of PHP.)

Download this free guide


Download: Excelling with Linux in your IT department
Ensure you make the most out of your Linux environment by utilizing Linux and
Windows together, understanding major Linux vulnerabilities, and getting a sense of
the future career outlook for IT Linux pros.
Start Download

Because the platform has four layers, LAMP is sometimes referred to as a LAMP
stack. Stacks can be built on different operating systems. Developers that use these
tools with a Windows operating system instead of Linux are said to be using WAMP;
with a Macintosh system, MAMP; and with a Solaris system, SAMP.

CodeIgniter

CodeIgniter is an Application Development Framework - a toolkit - for people who


build web sites using PHP. Its goal is to enable you to develop projects much faster
than you could if you were writing code from scratch, by providing a rich set of
libraries for commonly needed tasks, as well as a simple interface and logical

structure to access these libraries. CodeIgniter lets you creatively focus on your
project by minimizing the amount of code needed for a given task.

CodeIgniter is loosely based on the popular modelviewcontroller (MVC)


development pattern. While controller classes are a necessary part of development
under CodeIgniter, models and views are optional.[2]

Features
framework with a small footprint.
exceptional performance.
broad compatibility with standard hosting accounts that run a variety of PHP
versions and configurations.
framework that requires nearly zero configuration.
MVC
Model View Controller or MVC as it is popularly called, is a software design pattern
for developing web applications. A Model View Controller pattern is made up of the
following three parts:

Model - The lowest level of the pattern which is responsible for maintaining data.

View - This is responsible for displaying all or a portion of the data to the user.

Controller - Software Code that controls the interactions between the Model and
View.

MVC is popular as it isolates the application logic from the user interface layer and
supports separation of concerns. Here the Controller receives all requests for the
application and then works with the Model to prepare any data needed by the View.
The View then uses the data prepared by the Controller to generate a final

presentable response. The MVC abstraction can be graphically represented as


follows.

The model
The model is responsible for managing the data of the application. It responds to
the request from the view and it also responds to instructions from the controller to
update itself.

The view
A presentation of data in a particular format, triggered by a controller's decision to
present the data. They are script based templating systems like JSP, ASP, PHP and
very easy to integrate with AJAX technology.

The controller
The controller is responsible for responding to user input and perform interactions
on the data model objects. The controller receives the input, it validates the input
and then performs the business operation that modifies the state of the data model.

What is AJAX?
AJAX = Asynchronous JavaScript and XML.
AJAX is a technique for creating fast and dynamic web pages.

AJAX allows web pages to be updated asynchronously by exchanging small amounts


of data with the server behind the scenes. This means that it is possible to update
parts of a web page, without reloading the whole page.

Classic web pages, (which do not use AJAX) must reload the entire page if the
content should change.

Examples of applications using AJAX: Google Maps, Gmail, YouTube, and Facebook.
AJAX is Based on Internet Standards
AJAX is based on internet standards, and uses a combination of:

XMLHttpRequest object (to retrieve data from a web server)


JavaScript/DOM (to display/use the data)

Ajax is not a technology, but a group of technologies. HTML and CSS can be used in
combination to mark up and style information. The DOM is accessed with JavaScript
to dynamically display and allow the user to interact with the information
presented. JavaScript and the XMLHttpRequest object provide a method for
exchanging data asynchronously between browser and server to avoid full page
reloads.

Jquery
jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML
document traversal and manipulation, event handling, animation, and Ajax much
simpler with an easy-to-use API that works across a multitude of browsers.

jQuery is a lightweight, "write less, do more", JavaScript library.

The purpose of jQuery is to make it much easier to use JavaScript on your website.

jQuery takes a lot of common tasks that require many lines of JavaScript code to
accomplish, and wraps them into methods that you can call with a single line of
code.

jQuery also simplifies a lot of the complicated things from JavaScript, like AJAX calls
and DOM manipulation.

The jQuery library contains the following features:

HTML/DOM manipulation
CSS manipulation
HTML event methods
Effects and animations
AJAX
Utilities

Testing
8.1.

INTRODUCTION

Software testing is a critical element of software quality assurance and represents


the ultimate review of specification, design and coding. In fact, testing is the one
step in the software engineering process that could be viewed as destructive rather
than constructive.

A strategy for software testing integrates software test case design methods into a
well-planned series of steps that result in the successful construction of software.

Testing is the set of activities that can be planned in advance and conducted
systematically. The underlying motivation of program testing is to affirm software
quality with methods that can economically and effectively apply to both strategic
to both large and small-scale systems.
8.2.

STRATEGIC APPROACH TO SOFTWARE TESTING

The software engineering process can be viewed as a spiral. Initially system


engineering defines the role of software and leads to software requirement analysis
where the information domain, functions, behavior, performance, constraints and
validation criteria for software are established. Moving inward along the spiral, we
come to design and finally to coding. To develop computer software we spiral in
along
vel of abstraction on each turn.
may also be viewed in the context of the spiral. Unit
testing begins at the vertex of the spiral and concentrates on each unit of the
software as implemented in

8.3.

Unit Testing

Unit testing focuses verification effort on the smallest unit of software design, the
module. The unit testing we have is white box oriented and some modules the steps
are conducted in parallel.

1.

WHITE BOX TESTING

This type of testing ensures that

All independent paths have been exercised at least once

All logical decisions have been exercised on their true and false sides

All loops are executed at their boundaries and within their operational bounds

All internal data structures have been exercised to assure their validity.

To follow the concept of white box testing we have tested each form .we have
created independently to verify that Data flow is correct, All conditions are exercised
to check their validity, All loops are executed on their boundaries.
2.

BASIC PATH TESTING

Established technique of flow graph with Cyclomatic complexity was used to derive
test cases for all the functions. The main steps in deriving test cases were:
Use the design of the code and draw correspondent flow graph.
Project Report
Determine the Cyclomatic complexity of resultant flow graph, using formula:
V(G) = E-N + 2 or
V(G) = P+1 or
V(G) = Number Of Regions
Where V(G) is Cyclomatic complexity,
E is the number of edges,
N is the number of flow graph nodes,
P is the number of predicate nodes.
Determine the basis of set of linearly independent paths.
3.

CONDITIONAL TESTING

In this part of the testing each of the conditions were tested to both true and false
aspects. And all the resulting paths were tested. So that each path that may be
generate on particular condition is traced to uncover any possible errors.
4.

DATA FLOW TESTING

This type of testing selects the path of the program according to the location of
definition and use of variables. This kind of testing was used only when some local
variable were declared. The definition-use chain method was used in this type of
testing. These were particularly useful in nested statements.
5.

LOOP TESTING

In this type of testing all the loops are tested to all the limits possible. The following
exercise was adopted for all loops:

All the loops were tested at their limits, just above them and just below them.

All the loops were skipped at least once.

For nested loops test the inner most loop first and then work outwards.


For concatenated loops the values of dependent loops were set with the help
of connected loop.

Unstructured loops were resolved into nested loops or concatenated loops


and tested as above.
Each unit has been separately tested by the development team itself and all the
input have been validated.

Bibliography
Learning Php, Mysql & Javascript 4th Edition
Robin Nixon

Practical CodeIgniter 3
Lonnie Ezell

Head First Ajax


: Rebecca Riordan

Learning MySQL
M. M. Tahaghoghi

You might also like