swape.net alireza balouch

22Mar/100

My PHP Code-Standards Part 2

Classses

Class name and and file name should have the same name.

Let us say you have a class called "myFirstClass" then your file should be myFirstClass.class.php

Remember to have some kind of comment on top of the file to describe important information about the class like author, version nr or created date.

  1.  
  2. class myFirstClass{
  3.    private $intNumber = 3;
  4.    private $strName = '';
  5.  
  6.   public function getNumber(){
  7.      return $this->intNumber ;
  8.   }
  9. }
  10.  

Never access the internal variables directly. Use a public function to get or set the value.

  1.  
  2. class someClass{
  3.    private $intValue1 = 0;
  4.    private $intValue2 = 0;
  5.  
  6.    public function getValue1(){
  7.       return $this->intValue1;
  8.    }
  9.  
  10.    public function getValue2(){
  11.       return $this->intValue2;
  12.    }
  13.  
  14. }
  15.  

Use default values instead of passing the same value every time.

  1.  
  2. class someClass{
  3.    private $intValue1 = 0;
  4.    private $intValue2 = 0;
  5.  
  6.    public function getDate($strFormat = 'Y-m-d' ){
  7.       return date($strFormat);
  8.   }
  9.  
  10. }
  11.  

Never echo out within a function. It is better to return a value.
This way you can choose what to do with returned value.

  1.  
  2.  
  3. $objSome = new someClass();
  4. $strReturn = 'Date: <b>' . $objSome->getDate() . '</b><br/>';
  5. $strReturn .= 'Week: <b>' . $objSome->getDate('W') . '</b>';
  6.  
  7. echo $strReturn;
  8.  
  9. class someClass{
  10.    public function getDate($strFormat = 'Y-m-d' ){
  11.       return date($strFormat);
  12.   }
  13. }
  14.  
Tagged as: No Comments
13Nov/090

My PHP Code-Standards Part 1

Here is a tutorial on how to write a nice and clean PHP code.

Let us start with variables.

I use prefix for variables with camel notation. This makes it easy to see and check the right variable for its type.

  1. $strName = 'ali' ;
  2. $intCounter = 1;
  3. $arrData = array('a'=>'ali' , 'i'=>'is' , 'p'=>'perfect');
  4. $blnTrigger = true;
  5. $objMailSender = new mailSenderClass();

I use single quote for my data.

  1. $strMyNameIs = 'Alireza';

And I use double quotes for SQL or strings that I need to have a single quote inside.

  1. $strSQL = "SELECT * FROM person WHERE name LIKE 'ali' ";

I never use variable inside a double quote string. I break up the quote.

  1. $strCode = "some $bad code ";// WRONG AND UGLY
  2. $strNiceCode = 'Very ' . $strData . ' is pasted here' ;// NICE CODE

Never ever use short variables like $a or $temp or other lazy short names.
Use variable names that are understandable and describe what it contains.
And using a camelNotation makes it easy to read.
Never start with underscore or other kind of separator for names.

  1. $strReturn = 'Nice code';

Only use underscore for constants where you can not use tha camel notation.

  1. define('FOO_BAR','It works!');

And do not start with underscore. There are some other system variables and functions that starts with underscore like _get() or $_SESSION

Tagged as: , No Comments
18Aug/090

Swape Gallery Light

SGL is a php5 script to list pictures.
This script finds all the pictures in a directory under ./test_pic/ and makes menus based on directories.

All you have to do is putt your pictures in ./test_pic/ directory. Or edit $strPathToFiles = './test_pic'; in sgl4.class.php file.

You can organize your pictures by category, by putting it under sub-directories.

The thumbs/ directory must be writable (CHMOD 755) to generate thumbnails automatically first time you visit the site. It will help loading your images faster.

HOW TO INSTALL

All you have to do is unzip the file.
Unpack the sgl4.php and configure the paths.

Putt your pictures under ./test_pic/ directory.
And don't forget to chmod 755 thumbs directory.

SYSTEM REQUIRED.

Server with PHP5.

Download: sgl4

Tagged as: , , , No Comments
19Feb/080

favicon2png

Here is a script to download the favicon.ico files from a website and save it as a png file.

You must have imagemagick installed on your server to convert the ico file to png.

  1.  
  2. <!--- html code ---->
  3. <form action="?" method="post">
  4.   <input id="site" name="site" type="text"
  5. value="<?php echo $_POST['site']; ?/>" />
  6.   <input type="submit" />
  7. </form>
  8.  
  9. < ?php
  10. //--- favicon2png by Alireza Balouch @ swape.net 2008
  11.  
  12. if($_POST['site'] != ''){
  13.  
  14. //finding the hostname
  15. $host = parse_url($_POST['site']);
  16. $host = $host['host'];
  17. $host = explode('.' , $host);
  18. $host = $host[count($host) -2];
  19. $filename = 'img/' . $host . '.png';
  20.  
  21. if (!is_file($filename)){
  22. // getting the favicon
  23. $handle = fopen( $_POST['site'] . '/favicon.ico', "rb");
  24. $contents = stream_get_contents($handle);
  25. fclose($handle);
  26.  
  27. file_put_contents('fav.ico' , $contents );
  28. // converting to png
  29. $StrExec = '/usr/local/bin/convert fav.ico -resize 24x24\> ' . $filename ;
  30. $ret = exec($StrExec);
  31. }
  32. echo '<img src="' . $filename . '" />' . $_POST['site'];
  33. }
  34. ?>
Tagged as: , , No Comments