www.webdeveloper.com
Results 1 to 2 of 2

Thread: Custom CMS Advice

Hybrid View

  1. #1
    Join Date
    Dec 2012
    Location
    England
    Posts
    4

    Question Custom CMS Advice

    Hi Guys

    I've been developing my own CMS in PHP for over a year and it's getting to the stage where I need some advice.

    I'm pretty much all self taught when it comes to PHP, but having a background other programming languages helped.

    However, I'm quite sure, being self taught, I've got a smattering of bad practices and habbits.

    So here's a quick summary of the CMS so far...

    All of it based off a series of Class files, which inherit base functions and their database connection from a single "Main" class.

    This main class has a "config" file included within it, which contains definitions for the DB username password etc.

    so

    Code:
    require_once "class.main.php";
    
    Class User extends Main {
    
        function __construct() {
    
    	 parent::__construct();		
    
       }
    
    }
    These classes can then be included in my fronted pages to utilize their features

    Pretty standard so far right?

    The issue I'm now having is that I need some of these classes to reference other classes internally... A current case is that I need the "Catalogue" class to use methods from my "Categories" class

    So my products class file looks like:

    Code:
    require_once "class.main.php";
    require_once "class.category.php";
    
    
    class Catalogue extends Main{
        parent::__construct();
       $this->category_obj = new Category();
    }

    This to me just seems like a bad way of doing it? Having to "require_once" a class like that?

    I've been looking into namespaces as a potential solution to the problem, I understand how they work to a degree but I can't quite clearly see how I can incorporate them into my current architecture. I'm basically just looking for some advice and guidance on how to properly optimize and structure my code.

    Thanks in advance guys!

  2. #2
    Join Date
    Aug 2004
    Location
    Ankh-Morpork
    Posts
    19,176
    Take a look at the __autoload() class. If you use a consistent naming convention and directory structure, you can come up with a fairly simple auto-load mechanism, e.g.:
    PHP Code:
    function __autoload($className) {
        
    $classPath $_SERVER['DOCUMENT_ROOT'].'/classes/';
        require 
    $classPath.(str_replace('_''/'$className.'.php';

    The above assumes a structure where class "Foo_Bar" would be in "<docroot>/classes/Foo/Bar.php". Obviously you can change it to cope with whatever naming convention and directory structure you like to use.
    "Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
    ~ Terry Pratchett in Nation

    eBookworm.us

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles