Jump to content
MakeWebGames

Recommended Posts

Skeleton is a Modular Application Framework, designed and built by none other than me.

My goal was to reach a point where I could have a scalable and very lightweight framework where I could just pop in features and templates as I needed.

I've used this application on tens of websites now, and with great success.

I've decided to make my little project completely open source, and have hosted it on github.

You can find it here: https://github.com/nands/skeleton

There are currently two branches, being "master" and "development".

The master branch is where official versions are committed to, and dev(elopment) is where any potentially unstable features and versions are.

I hope you all can contribute to this project, and share what you know.

Right now, I'm working on creating PHPDoc for every single thing the framework does.

Afterwards, I will be on a fault finding mission, and will improve it to work with a custom set TPL engine.

Additionally, I've set a goal for version 1.0 for this, which hopefully will be reached sometime(July).

Looking forward to seeing some people.

S.

Link to comment
Share on other sites

Interesting. Had a quick glance over a cuppa this morning whilst I had a few minutes.

Wondering why you went down a PDO route. As for many hosts it wont be available (unless they simply check every box when building enabling everything they can!) and also when I have used it ive found it quite restrictive but ive not used it that much to have learnt better.

Link to comment
Share on other sites

Interesting. Had a quick glance over a cuppa this morning whilst I had a few minutes.

Wondering why you went down a PDO route. As for many hosts it wont be available (unless they simply check every box when building enabling everything they can!) and also when I have used it ive found it quite restrictive but ive not used it that much to have learnt better.

Quite a good question, I'll try to answer it from what I remember.

When I first began researching an appropriate database wrapper to use, it was between mysqli and PDO.

I tried to compensate for both by using (then) new features in PHP 5.3.2 such as structures and namespaces, where I could programmatically switch between multiple database wrappers, even if it weren't for the same DBMS.

This failed horribly, and I ended up creating such a complex implementation of a database class that it either became too limited or unstable to use.

I opted for a single database wrapper after that, and kept the idea of being able to switch between database wrappers on the fly.

Initial versions of the database wrapper was an abstract class with predefined methods.

All it needed was a specific driver's class to extend into it.

I doubted that method as well, as abstract functions(interfaces) are not compatible with early versions of PHP5.

It could be implemented again, but I'll keep it within a dev branch until PHP5.3.2 and PHP5.4 installations have increased.

My last and final attempt is what is currently implemented, a single database wrapper.

I have researched mysqli and PDO to decide which would fit best with the application.

While mysqli held it's advantages over PDO in certain cases, I found that PDO was faster to implement and build onto.

Things like transactions(currently all queries are sent as one) can easily be used, and while I know mysqli(and even mysql) can do the same I prefer my objects.

But, if I had to pick one reason why I settled on PDO, it's because it has much more OO functionality that can actually be maintained.

Although I wouldn't say that classes currently are interchangeable, but if needed another driver can be "popped" in.

I hope that answer's your question.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...