Archive

Archive for the ‘PHP Development’ Category

Wordpress : A PHP Developer’s delight

January 17th, 2010 Zareef Ahmed No comments

First in the series of my experiments with Open Source CMS, today I will write about my experiments with wordpress as PHP developer.

I heard about wordpress long ago but have used it on large scale since year 2007. I have created some custom setups so different domains can run from same code base. I have also created lots of plugins to handle content customization, displaying different source content like google maps, creating automated posts with different source database, url customizations and lots of things.

I found wordpress very easy to setup, its just few click setup, and in our customization it was just a single click setup for any web site. Creating plugin in very very easy due to its documentation and support for many events and hooks in life cycle of any page.

Different page templates is also one of the great feature of wordpress where you can use different design templates for different pages. I am so impressed with wordpress that I have transferred my this blog to wordpress blog. Wordpress is blessing for PHP developers.

PHP Functions to work with PHP functions

July 9th, 2009 Zareef Ahmed No comments

In this article, I am going to write about the functions using which you can get the information about php functions.

For a full list of PHP functions you can visit http://www.zend.com/phpfunc/

Using these functions you can query the stats/status of your functions, these functions are very useful in dynamic application creation.

For example, using func_get_arg and func_num_args functions you can simulate the function overloading in PHP.

Read a good example for http://www.dubi.org/php-function-overloading

Functions I will write in this article are :-

get_defined_functions();

You want to how many functions are in your installation of PHP, just call this function, it will return an array of all php functions you can call. For the convince it return an multidimensional array, so you can access both internal and user defined functions separately.

func_get_arg()

Returns the argument which is at the arg_num’th offset into a user-defined function’s argument list. Function arguments are counted starting from zero. func_get_arg() will generate a warning if called from outside of a function definition. This function cannot be used directly as a function parameter. Instead, its result may be assigned to a variable, which can then be passed to the function.
If arg_num is greater than the number of arguments actually passed, a warning will be generated and func_get_arg() will return FALSE.
As this function depends on the current scope to determine parameter details, it cannot be used as a function parameter. If you must pass this value, assign the results to a variable, and pass the variable.

func_get_args()

Returns an array in which each element is a copy of the corresponding member of the current user-defined function’s argument list. func_get_args() will generate a warning if called from outside of a function definition. This function cannot be used directly as a function parameter. Instead, its result may be assigned to a variable, which can then be passed to the function.
This function returns a copy of the passed arguments only, and does not account for default (non-passed) arguments.
As this function depends on the current scope to determine parameter details, it cannot be used as a function parameter. If you must pass this value, assign the results to a variable, and pass the variable.

func_num_args() Returns the number of arguments passed into the current user-defined function. func_num_args() will generate a warning if called from outside of a user-defined function. This function cannot be used directly as a function parameter. Instead, its result may be assigned to a variable, which can then be passed to the function.
As func_get_arg() this function also can not be passed as argument to another function.

function_exists()

Checks the list of defined functions, both built-in (internal) and user-defined, for function_name. Returns TRUE on success or FALSE on failure.

create_function()

Creates an anonymous function from the parameters passed, and returns a unique name for it. Usually the args will be passed as a single quote delimited string, and this is also recommended for the code. The reason for using single quoted strings, is to protect the variable names from parsing, otherwise, if you use double quotes there will be a need to escape the variable names, e.g. \$avar.

This is one of very useful function to create dynamic application, using this function you can create the function at run time and then use them as per your requirements.

call_user_func()

Call a user defined function given by the function parameter.
People are divided on the use of this function, some thinks that it is not needed at all when we can run the function on the variable itself.
Like use of this function is

function test($value)
{
print "This is $value";
}

call_user_func("test","test value");

some people prefer using variable function like this :-

$funcname="test";
$funcname("test");

This is also a call_usr_func_array function.

is_callable()

If you are going to use a a variable function like previous example, you may need to verify if a function already present and callable? using this function you can do that.
This function Verify that the contents of a variable can be called as a function. This can check that a simple variable contains the name of a valid function, or that an array contains a properly encoded object and function name.
The var parameter can be either the name of a function stored in a string variable, or an object and the name of a method within the object, like this:

array($SomeObject, 'MethodName')

In some way it is similar to function_exisits function but it does more that that if you just want to check the syntax then you can pass a second argument as True, in that case it only verifies that var might be a function or method. It will only reject simple variables that are not strings, or an array that does not have a valid structure to be used as a callback. The valid ones are supposed to have only 2 entries, the first of which is an object or a string, and the second a string.

PHP is a functional language and you can almost do anything with these functions.

Tags:

PHP Training Education Tutor in Delhi NCR

June 22nd, 2008 Zareef Ahmed No comments

As PHP is gaining the ground in India, numbers of initial level jobs are also increasing day by day. Almost every day I got questions from new comers how they can learn PHP? Which training institute is providing the training in PHP?

Unfortunately almost all major player of training industry in India, specially Delhi are still not doing much (I should nothing) in this regard.

So I am thinking about organizing PHP training camps in and around Delhi in this summer, If you would like to be in that camp, I would request you for sending a message via my contact us page.

Please give me some details about yourself and in which area of Delhi or NCR you will prefer the camp.


Click here to send your message for PHP training camp.

Tags:

Using SQL abstraction and CRUD factory classes is a good practice?

July 6th, 2007 Zareef Ahmed No comments

This question again struck me today, somebody just throw a simple question about EXPLAIN statement in MySQL and in hast I relate that to DESCRIBE. When that person cut the line of phone, I suddenly realize my mistake.

I am working with PHP and MySQL since last seven years then why this happen to me? This is because I am not using MySQL frequently, although it is the integral part of almost every application I am working on. I am fairly away from MySQL queries because I am using my factory classes or framework like cakephp which does not require me to write the SQL queries. Almost all of my operations on database are covered within my CRUD classes. Even complex select or updates are possible using simple search objects in my factory classes or framework I am using.

BUT this practice has caused a deficiency in my knowledge of MySQL statements. This situation is really horrible sometime. Do I need to stop using my factory classe practice and abstraction. I normally prefer abstraction and factory classes because I want to make my code portable to other databases also.

I am really a in fix What should I do?
BUT again another question struck me What is more important? My knowledge of MySQL statements or fast and portable execution of projects. When we got the higher level, we certainly miss the lower level details of applications.

So I will stick to my factory classes, because I know I may struggle with some academic questions about MySQL for the time being but at least I can do the stuff with just one reference to MySQL manual. Above all I may face problem in simple MySQL statements but I am good at high level things like replication and performance tuning at server level.

What you say is it a good decision?

Tags:

PHP4 and PHP5 version conflicts and why we should stop using PHP 4

June 14th, 2007 Zareef Ahmed No comments

PHP 5 is in the market since many years, but it still has to capture the market.

Why? Is it not efficient version of PHP language?

What are main reasons behind slow-adoption of PHP version 5.

I am compiling a list of reasons; you can also send me the reason why you have moved to PHP5 or why you are not able to do that?

I will write about that list in my coming articles.

Tags:

How to create a file upload progress bar in any version of PHP?

May 19th, 2007 Zareef Ahmed No comments

In this article I am going to write my experience with a work in which I was supposed to do file upload progress bar.

First of all I consider using APC then came to know about PECL extension uploadprogress

Unfortunately both were not possible for me as I have no control on the server on which it was supposed to run.

Tweaking with installed version of PHP or up gradation of PHP was also ruled out.

In India we have a word which is very common in use whenever someone is in a deadlock, the magic word is ‘Jugad’, if simply translated into English, it will mean ’system’, but in contextual meaning it stands for ‘Smart Work’.

Well I can not claim that adjective for this work, as it has some contextual limitations but it is working solution.

Before I jump to the final details of the working structure, I would like to recollect some facts about file uploading in PHP.

Whenever you upload something via a PHP page, it gets uploaded to a temporary folder on server then programmer has to move it from there to a proper location via PHP script.

That temporary folder can be defined in php.ini file and if not defined PHP uses operating systems default temporary folder.

I have created this script with the help of Ajax.

First of all I have changed temporary folder of PHP to a folder on which I have some control so I can access that with my PHP scripts time to time. Then I have created a form to upload the file to server.

I created another PHP script to calculate the size of a particular folder and THATS’S IT application was finished.

Whenever someone hits the upload button, file upload starts to the server.Using Ajax I call my other script which that calculates the size of temp folder after every second, and then I show the updated html page with file size using Ajax.

You can call it dirty programming but it is working solution to this problem in any version of PHP.

When this solution will not work?

It will always work but in some situations may give you wrong results. This approach will not produce desired results on the servers where lots of file handling is being done via PHP and lots of people are doing file upload at one go.

Although it can be designed to have multiple file upload at same time like instead of temporary folder we can opt for calculation of particular temporary file in temporary folder and that file can be guessed by the upload button hit time, but that is not 100% usable in every situation. If lots of people are uploading the files at same time it may conflicts with each other.

Did you like this Jugad?

Tags:

Buyout of JBoss by Redhat may create an open source powerhous

April 18th, 2006 Zareef Ahmed No comments

The proposed $350 million buyout announced in the first half April,2006 by Linux distributor Red Hat, Inc., of Java middleware maker JBoss, Inc. is seen by analysts as the first major consolidation initiative in the open source software realm that has potential to challenge the might of software giants like Microsoft and Sun Microsystems.

They admit the cash and stock deal has fallacies — The $350 million Red Hat is paying for JBoss ($420 million if JBoss hits all revenue targets) is higher than Red Hat’s $278 million in revenue for the fiscal ended 28 February. And JBoss is said to have had around $80 million in revenue during the fiscal. But, they say the scope the merged entity holds out — middleware has huge prospects — is the key element of Red Hat’s offer and it is the future that is looked at.

Read the news which discuss financial aspects of deal between Redhat and JBOSS

Tags:

Jobs at Yahoo

April 11th, 2006 Zareef Ahmed No comments

Sometime ago I got a mail from Gina Masongsong, who is working with Yahoo on contract position, they are looking for some people to work with Yahoo. They asked me if I know any programmer, who may be willing to work with Yahoo, so I am posting this message here. You can send your resumes to them at gmasongsong@vadoinc.com

I also have there personal number but I do not think Its proper to publish it on net. But if you want to contact them personally, you can send me a personal message, I will give number in mail to anyone who needs it.

Tags:

Open Source is a HIT in india

April 11th, 2006 Zareef Ahmed No comments

It has been over a year since UTI Bank set up its call center that handles over 7,000 calls per day. The bank was looking for a robust platform that could guarantee it “high availability of services and uninterrupted call traffic”. It had options but finally decided on Linux for its core business applications.

“Today, we are really happy with Linux that has delivered 99.99 per cent uptime so far,” says Pritesh Thaker, AVP, IT, UTI Bank. The bank, in fact, is now planning to base its credit card-based system on Linux too.

Some Fact about Open Source Linux

Linux is expected to have a 15 per cent share of the ERP market by 2007 (Peerstone Research)
55 per cent of all companies deployed Linux by the end of 2005 (AMR Research)
There are over 1.2 million developers with Linux skills (Evans Data Corp)
IBM has more than 7000 services professionals working with Linux

A good Study at Rediff

Tags:

Now Microsoft gives Support for Linux Open Source

April 11th, 2006 Zareef Ahmed No comments

With a high-profile executive speech at LinuxWorld and the launch of a new Web site focusing on open source, Microsoft has been cozying up to the Linux penguin this week.

Microsoft stunned LinuxWorld attendees last week by pledging to support Linux virtual machines on its Virtual Server and revealing free virtual machine additions for Red Hat Linux and Novell SUSE Linux. It wasn’t the only dogs-playing-with-cats kind of moment last week: Apple offered up software to let Windows run on Intel-based Macs.

What’s going on here? The answer is virtualization, the ability to much more easily carve up servers and PCs into compartments that can run multiple applications under different operating systems at the same time. Business interest in virtualization–particularly of servers–is picking up quickly, and vendors are racing to stake out this emerging market. The result could blur some of the hard-and-fast lines drawn between operating systems.

The appeal can be seen at RSA Security, where software engineers used to run from room to room setting up different server hardware, application, and operating system combinations to test new security products. Today, a developer tells the data center which environments are needed, and they’re created as virtual machines that can run different apps on Windows or Linux, using the same server hardware, says RSA engineering director Roy Rezac. Two or more developers’ virtual machines may even run simultaneously on one pizza-box-sized, rack-mounted server. Businesses see that flexibility lowering costs, improving load balancing, and increasing server utilization and consolidation.

Read More

Tags:

Busy Weeks for Open Source Community

April 11th, 2006 Zareef Ahmed No comments

In first half of April 2006, we got two big news from Open Source community, First Novell’s Open Linux will provide .NET environment support, so you can easily run .NET applications on Linux, Second RedHat Inc, the Microsoft of Linux Community has acquired JBOSS, an Application server for JAVA.

At the annual LinuxWorld Conference, Novell discusses its OpenSUSE build service as part of a new Linux build service framework that will become the development platform for future SUSE Linux distributions.

Read How Novell done this to Open Source Community

Red Hat, the world’s leading provider of open source solutions to the enterprise, announced that it has entered into a definitive agreement to acquire JBoss, the global leader in open source middleware. By acquiring JBoss, Red Hat expects to accelerate the shift to service-oriented architectures (SOA), by enabling the next generation of web-enabled applications running on a low-cost, open source platform.

“It is at Red Hat’s very core to help unlock the power of open source and open communities to innovate across industries, geographies and economies,” said Matthew Szulik, Chairman and CEO of Red Hat. “Red Hat and JBoss are fully aligned around the belief that the open source development model continues to change the economics of enterprise IT in favor of the customer, and we truly believe in the potential of software innovation, once freed from the fetters of proprietary development.”

Read Official Annoucement on JBOSS

Tags: