abstract php framework