coolcsn / CsnUser

Authentication module using Doctrine
MIT License
33 stars 36 forks source link

How to use the module properly #6

Open dennis-fedco opened 10 years ago

dennis-fedco commented 10 years ago

When using coolcsn modules I have been modifying csn-user and csn-authorization files in order to meet specific needs of my application.

I have been making those changes in the vendor folder. Turns out it is not the proper way to do things, as vendor folder is not to be modified.

What I am doing is adding things like restructuring databases via ORM code, adding new fields to User object, adding new tables to reflect my application's needs, changing Form captcha classes and methods, adding custom HTML and jQuery code to html pages, and more.

Normally I think ZF2 promotes module extension, but in this case I think my changes are too vast to allow for ease of such extension.

Another option is to fork the modules then use them as copies but with my own changes. My forks will be part of my vendor folder but will require me to makes changes to and keep track of separate repositories - one for my application, and one for each of the forked modules. I see this as inconvenient.

Another way is to make those modules (csn-user, csn-authorization) part of my application, and put them under my module directory, then my Application and the modules can be part of one repository. I think in my case this will be the simplest way to maintain things.

I know that your plans include extending coolcsn and have it do other things. I am not sure if it will be relevant, as my fork/module of coolcsn may become vastly different from what you have.

Basically I am thinking of using the module(s) as a starting point of my own application but then modifying and rewriting it in parts, for it to be a part of my specific application.

I wanted to ask you if what I am thinking of doing is a good way to be using the module.

coolcsn commented 10 years ago

Hello Denis, Yes, I think your approach is the best. Just use the modules as a starting point for your own modules. And keep your modules etc. in your own repository. The modules have been created with educational purpose. To show how the modules can be build and to be used as they are or to be used as a starting point.