Welcome Guest, Not a member yet? Register   Sign In
CodeIgniter For Commercial Purposes
#1

[eluser]mcarroll[/eluser]
Greetings,

I am new to CodeIgniter, but I'm considering using it to build a commercial eBay like marketplace. Would you experienced CodeIgniters recommend using this framework in a large-scale commercial system? Or would you recommend a more mainstream commercial solution?

Some concerns I have in general include: security, scalability, and time to market. The little bit I've seen of CodeIgniter makes me think time to market would be very short, but the security and scalability are concerns for me with an open source, easy to learn/use framework.

Any advice, anecdotes, explanations would be appreciated.

Thanks.

Matt
#2

[eluser]WanWizard[/eluser]
my 2ct's:

I miss the relation between open source and concerns about scalability and security. Are implying that closed source solutions are more scalable and secure?

One could argue that een open source product has to be inheritely secure because everyone can see the code, there is no "security through obscurity". And if an issue is found, it can be reported and dealt with. And you can see the result of that. You'll never know that with a closed source solution.

As to scalability, it is my experience that the choice of development framework is only a small factor in that equation. For an application to be truely scalable, scalibility has to be part of the architecture and design from day-one. Any framework can be scalable, only the amount of hardware to achieve your goals might differ.

Time to market largely depends on the complexity of the application, the skills of the workforce at hand and the time they have available. Also a "client" that doesn't change his requirements every five minutes would be handy. Choose the correct development methology, so you can adapt quickly to changes in the requirements, and deliver the application in multiple steps (look for example into extreme programming).

In my experience CI as a framework is very accessable, easy to learn and to use. But when it comes to complex applications, I choose a different framework because CI misses the functionality I need to reduce that complexity. You can bolt some of that on using third party solutions, but it will always be bolted on, there is no core framework support. It also means you'll spend more time coding a feature in CI then in some other frameworks, and your code will be more complex and therefore more expensive to maintain.
#3

[eluser]Dan Allen (Houston, TX)[/eluser]
CodeIgniter can scale to anything. It's all in how you use it.

The risk I always consider is whether there could be a better framework that could save us time, delivering more of the functionality targeted by CodeIgniter. 

CodeIgniter is a leap over plain php for building web applications.  Where is the next leap past CodeIgniter?  I would feel better if I thought I knew what the next leap is and why I cannot take it now.

That said, I am good with CodeIgniter.  I don't see anyone knocking it. 

My observations of CodeIgniter:

o If you are not interested in money, then you don't need CodeIgniter or something like it for boosting your web application architecture. 

o Without CodeIgniter, system security in forms handling is a big hole that requires a lot of wheel reinvention.  In other words, if you want to let people talk to your website (using forms or other input channels), you need to have security around what they send.  CodeIgniter can help provide a safety net in that area.  I am not sure, but the safety net might require Doctrine.

o Without CodeIgniter, we would need another way of connecting php-enhancers to our environment.  For example, email data is extremely complicated.  Programmers who build object libraries for reading/writing them build them to standards implemented by CodeIgniter.

o I have looked at alternatives to CodeIgniter.  So far, there is something about CodeIgniter that seems to be an exquisite fit into a certain role in my web application architecture.

o I hate Doctrine, because plain SQL does everything a database can do, and I already know how to work with SQL.   However, since we are running CodeIgniter, I am going to need to look at Doctrine.  Doctrine might play a key role is database security.

o CodeIgniter provides the MVC architecture.  I am still working to understand the advantages of MVC.

o CodeIgniter by itself needs added to it layers that I do not understand yet. We have working examples, where controllers are setup to connect to views and models using certain code, but I have not had a chance to determine if this is innovation beyond vanilla CodeIgniter.

o Even though I work with CodeIgniter everyday, I feel I do not exactly understand what it is all about.


#4

[eluser]mcarroll[/eluser]
Thanks for the information.

Considering the goal: an eBay style auction system accessed by 10's of thousands of users, would you recommend CodeIgniter? It sounds like maybe we should take the initial learning curve hit to use a thicker framework (maybe Zend?).

I don't predict any serious application logic coming up at the initial development stage in terms of business logic. However, we will be using lots of forms, we will need to send emails, we will need to secure our data, and we will need plenty of authentication. If those behaviors form the basis of our system, should we look elsewhere?
#5

[eluser]WanWizard[/eluser]
Zend is definately a bad idea. It's complex, bloated and slow.

And it doesn't really deliver what any framework should, an increase of development speed. It's more a large collection of libraries through which you'll have to find you way.

For any substantial application you should look into:
- modularity
- theming and templating
- authentication and a proper authorisation system, preferrably ACL based
- api driven development (decoupling frontend/backend) to aid scalability

As I assume such an application will include users personal information, pay attention to privacy issues that may arise. And if it includes a payments system, check the legal requirements in that area, such as PCI DSS compliance.
#6

[eluser]mcarroll[/eluser]
Then what would you suggest? The only other major PHP based option I've really heard much about is Cake PHP...so if you were building an auction system with user accounts holding important private information, which also requires routine payment processing, and user communication via email and other methods, what framework would you use?
#7

[eluser]WanWizard[/eluser]
I can't give you an advice, why I use is my personal preference given the circumstances (and I'm not going to promote another framework on a CI forum).

Your development team might have a different opinion, a different skill set, etc. If they're experts in CI, they probably develop better and quicker using CI then with a new framework they have to learn.
#8

[eluser]Dan Allen (Houston, TX)[/eluser]
[quote author="mcarroll" date="1332278894"]Then what would you suggest? The only other major PHP based option I've really heard much about is Cake PHP...so if you were building an auction system with user accounts holding important private information, which also requires routine payment processing, and user communication via email and other methods, what framework would you use?[/quote]

I do not like the idea of building a hard core system with something called Cake. I feel the same way about widgets. Neither of those terms give me confidence.

CodeIgniter comes with better attitude, it shows in the product and in EllisLab support.

If you are building something to compete with eBay, I say wow. I hope you will keep us informed of your progress and technical choices along the way.

I believe CI can work for any system, but you will be putting a lot of other stuff with it. The good thing about CI is it gives you a good way of building, without having to start from scratch in a lot of areas you probably will need, especially with regard to sessions, security of the data coming in on forms, establishing a browser friendly url system for your pages and content, lots of areas. At some level, selecting a framework is going to come down to the personal preferences and style of the person making the selection. For me, CI and everything from EllisLab seems to come with an ace level of thought and execution put into it. Finding a better gig than EllisLab is a challenge in my book. I like running with this crowd.

To run with eBay, you will be building lots of pages with lots of front end innovations you will have to add to CI.

This is my story and I am sticking to it. That said, I am striving to learn more about the basic value of running CI. I find it a little mysterious, even though I work with CI everyday.

Without CI, I use a framework I made, but it has a lot less going for it. That is why I made the change from my own stuff to CI and EE. I am more clear about what EE does than CI. I do know that EE is built with CI, so maybe a closer look at EE would reveal how CI is an essential part of that system.

#9

[eluser]Dan Allen (Houston, TX)[/eluser]
[quote author="mcarroll" date="1332276443"]Thanks for the information.

Considering the goal: an eBay style auction system accessed by 10's of thousands of users, would you recommend CodeIgniter? It sounds like maybe we should take the initial learning curve hit to use a thicker framework (maybe Zend?).

I don't predict any serious application logic coming up at the initial development stage in terms of business logic. However, we will be using lots of forms, we will need to send emails, we will need to secure our data, and we will need plenty of authentication. If those behaviors form the basis of our system, should we look elsewhere?[/quote]

Go with CI. Put this decision behind you and get on with the project. You will not regret CI ever. You have a lot of fish to fry besides picking your framework. CI is total state of the art, put together by the right people to be doing this kind of thing for the rest of us.

Be grateful for open source. Use CI.

go go go

p.s. Why on Earth would you want a thicker framework? What we all want is the lightest possible that does what we need. Light=simple=less stuff to go wrong

For what you said, you need to be able generate/receive forms and send email. Well, get going already. Just start making your forms and sending email with CI and see if you aren't glad you are on a state of the art framework for getting you done with those forms and email sooner. Form validation with CI will be a huge time saver compared to trying to come up with your own.

You will be asking yourself, "how else would anyone do this? and you will be grateful that you don't have to know. The answer is, "it would be harder." Then if you really want to know, you can dig into the CI source code, to see all the stuff already programmed for you that you can just use by invoking the object methods.

#10

[eluser]mcarroll[/eluser]
Yeah, I have decided to move forward with CI....bought a book on it last night to get up to speed with the paradigm and my team will begin implementing shortly.

For the record, its not eBay we are competing with, its just that we are constructing a general auction system which will function similar to eBay. We will auction only a specific type of product. I will post more once we have something online.

My guess is you will be hearing more from me as my team runs into trouble with our implementation.

Thanks.

Matt




Theme © iAndrew 2016 - Forum software by © MyBB