10 tips to optimize your PHP code

1. if you were to use between print or echo… use echo (Echo is known to be faster than print)

2. when doing string searches or action, do not simply/quickly jump on regex, but first have a look at php api’s string functions such as strpbrk, stripos etc..

3. Display smart error messages… A lot of young developers like to display a custom error or show systems errors whenever something break. Although it is good practice to alert the user of any error, keep in mind printing Error cost a lot in resources. Go for general error display then specifics.

4. Close your database connections when you are done processing mysql datas

5. Use variables instead of global variables

6. Always initialize your variables… It seems too common for coders to just declare a variable without initializing it and process it later with increments etc… Remember you are loosing on speed with none initialized variables

7. Whenever you echo a string on the string.. use ‘ ‘ instead of ” “… why? because PHP will look inside the ” ” declaration for any variables “$”… the process is therefore slower

8. Use mem-cached with apache as to cache memory objects. This will highly speed up the runtime execution of your web application

9. Use mod_gzip to compress data delivery

10. Implement data structure as array and not as class

and yes… :-) use less OOP as possible, being a JAVA and .NET programmer, I can guarantee that OOP in PHP is just a big overhead.

till later,

OpenVZ – sed error

Here is a quick fix on how I was able once to fix an OpenVZ virtualization node, when trying to emulate a container.

…..

If during vzctl create … you meet this kind of error “sed: can’t read /etc/init.d/syslog: No such file or directory // ERROR: Script install-post failed”

Here is how you may fix it..

$ vi /vz/template/centos/5/x86_64/config/install-post

and set syslog and syslog.conf sed replacements with exit status of “0″

# Disable klogd

$VZCTL exec2 $VEID \

“sed -i -e ’s/daemon\\ klogd/passed\\ klogd\\ skipped/’ \

-e ’s/killproc\\ klogd/passed\\ klogd\\ skipped/’ \

/etc/init.d/syslog; exit 0″

# Disable fsync() in syslog

$VZCTL exec2 $VEID \

“sed -i -e ’s@\\\([[:space:]]\\\)\\\(/var/log/\\\)@\\\1-\\\2@’ \

/etc/syslog.conf; exit 0″

Try now :-)

Yum segfaulting

Ever had yum segfaulting…

If this is the case, what to do?

1.) yum clean metadata
2.) yum clean dbcache
3.) yum makecache

try again :-)

cheers,