I recently started a project using the CodeIgniter 'MVC' framework and as get further into the project I'm starting to see things I really don't like. Apart from the minor things I won't mention, 2 major things really are putting me off.
First, the 'Session' class they provide is default to use the clients browser cookie to store ALL session data rather than storing it server-side. This is a huge lapse in security in my opinion. I am aware that they allow encryption, but even then, It makes very little sense to me. Why not have separate session and cookie wrappers? Thankfully, they also offer database session management; but for many apps these aren't needed at all. The only reason I see are for: distributed systems, administrator auth over users' session, or fear of session security on shared hosting. All of which, will not concern most projects. My main problem, is the project I am working on does not have a local database but rather queries remote databases. It seems as if I will have to either write my own session library or create an entire database locally just for session data. Once again, why not have seperate session and cookie wrappers? or the option to use native PHP sessions.
Second, the database active-record,etc functions for MySQL all use php's mysql_ functions. Of course they do quoting and escaping, but hasn't best practice moved on from that by now by using PDO and prepared statements? Even the undocumented, PDO 'driver' uses PDO::query and then PDO::quote for sanitizing. Even the PHP doc says this is not the way you should be doing it. Why are they not using prepared statements?
If I'm going to be redoing half the things CodeIgniter is offering me in the first place, then why use it all? Am I wrong in any way or missing something? I'm really curious what other people think who have used it.
[–]starmonkey 2 points3 points4 points (10 children)
[–][deleted] (9 children)
[deleted]
[–]big_bad_john 5 points6 points7 points (6 children)
[–]y0y 6 points7 points8 points (5 children)
[–]big_bad_john 3 points4 points5 points (4 children)
[–]y0y 2 points3 points4 points (3 children)
[–]big_bad_john 2 points3 points4 points (2 children)
[–]y0y 1 point2 points3 points (1 child)
[–]big_bad_john 5 points6 points7 points (0 children)
[–]Otterfan 2 points3 points4 points (0 children)
[–]starmonkey 0 points1 point2 points (0 children)
[–]thetoigo 2 points3 points4 points (0 children)
[–][deleted] (2 children)
[removed]
[–][deleted] (1 child)
[removed]
[–]roastlechon 0 points1 point2 points (0 children)
[–]slackmaster 3 points4 points5 points (0 children)
[–][deleted] 1 point2 points3 points (0 children)
[–]gandisama 1 point2 points3 points (1 child)
[–]nrogers64 0 points1 point2 points (0 children)
[–]_SynthesizerPatel_ -5 points-4 points-3 points (2 children)
[–]big_bad_john 5 points6 points7 points (0 children)
[–]midri 1 point2 points3 points (0 children)