SitePoint Sponsor

User Tag List

Results 1 to 18 of 18
  1. #1
    SitePoint Wizard DougBTX's Avatar
    Join Date
    Nov 2001
    Location
    Bath, UK
    Posts
    2,498
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Automated deployment

    Does anyone know of something like SwitchTower specifically for PHP apps?

    Douglas
    Hello World

  2. #2
    SitePoint Guru
    Join Date
    Aug 2005
    Posts
    986
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I don't know what SwichTower is as I have no experience with Ruby, but Ant might help you:

    http://ant.apache.org/

    At least you can deploy php-applications with it

  3. #3
    simple tester McGruff's Avatar
    Join Date
    Sep 2003
    Location
    Glasgow
    Posts
    1,690
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    There's Rephlux.

  4. #4
    ********* Victim lastcraft's Avatar
    Join Date
    Apr 2003
    Location
    London
    Posts
    2,423
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Hi.

    We use a homebrew version in Perl. Funnily enough, we were going to convert it all to Ruby. Java has it's deployment descriptors, which is the samething on steroids. It also has Maven.

    Most of these tools use a build tool underneath, such as Ant or Make. Something similar could be knocked up using Phing. The problem is...no one wants to work on this stuff in the PHP community. Rephlux development has pretty much died (it's still alpha quality). Instead we have dozens of frameworks and template engines, mostly substandard.

    You can deploy your app. in any language of course.

    yours, Marcus
    Marcus Baker
    Testing: SimpleTest, Cgreen, Fakemail
    Other: Phemto dependency injector
    Books: PHP in Action, 97 things

  5. #5
    SitePoint Addict chiefmonkey's Avatar
    Join Date
    Aug 2002
    Posts
    207
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by lastcraft
    Hi.

    We use a homebrew version in Perl. Funnily enough, we were going to convert it all to Ruby. Java has it's deployment descriptors, which is the samething on steroids. It also has Maven.

    Most of these tools use a build tool underneath, such as Ant or Make. Something similar could be knocked up using Phing. The problem is...no one wants to work on this stuff in the PHP community. Rephlux development has pretty much died (it's still alpha quality). Instead we have dozens of frameworks and template engines, mostly substandard.

    You can deploy your app. in any language of course.

    yours, Marcus
    Funnily enough I was looking at Rephlux this afternoon, as I need a build tool for work. I was thinking of rewriting it in PHP5, and adding a few specific things we need.

    George
    Got Sig!

  6. #6
    SitePoint Zealot
    Join Date
    Mar 2004
    Location
    Australia
    Posts
    101
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    It seems that SwitchTower from its description can target and deploy on multiple servers from one or more servers in parallel. May be Phing may help if it has a task for ssh clients?

  7. #7
    SitePoint Wizard
    Join Date
    Aug 2004
    Location
    California
    Posts
    1,672
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by lastcraft
    The problem is...no one wants to work on this stuff in the PHP community. Rephlux development has pretty much died (it's still alpha quality). Instead we have dozens of frameworks and template engines, mostly substandard.
    Well the other languages seem to have solved the biggest time waster in PHP ... arguing in forums about whether OOP is a good way to program. :'(

    For me, the most impressive thing about a project like Ruby on Rails is that they can actually get more than a dozen programmers to actually agree on a direction. That seems to rarely (if ever) happen in PHP. The great thing about projects like RoR and Struts long before it is that the provide a foundation to build upon. In PHP there is very little terra firma.
    Christopher

  8. #8
    ********* Victim lastcraft's Avatar
    Join Date
    Apr 2003
    Location
    London
    Posts
    2,423
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Hi.

    Yeah. I guess we should all find things to build on top of. So what are the good building blocks? Prado and/or Mojavi? WACT is still in a state of churn. Phing probably (must add a SimpleTest task to that one day). The EclipsePHP plug-in?

    Regarding this thread, a tool that simulated SwitchTower would combine Phing, bits of Rephlux and either PHPUnit or SimpleTest. It would deploy Mojavi/Prado/WACT/Seagull using CVS/Subversion/Perforce with a MySql/Postgres/Oracle/Sybase/MSSql backend to Apache/ISS on Windows/Linux/OSX/Solaris.

    I would be happy to get my bits working (SimpleTest) and help fix bugs in the core. I am always in favour of automated deployment tools. Saves me keep writing my own.

    yours, Marcus
    Marcus Baker
    Testing: SimpleTest, Cgreen, Fakemail
    Other: Phemto dependency injector
    Books: PHP in Action, 97 things

  9. #9
    SitePoint Wizard
    Join Date
    Aug 2004
    Location
    California
    Posts
    1,672
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by lastcraft
    Yeah. I guess we should all find things to build on top of. So what are the good building blocks? Prado and/or Mojavi? WACT is still in a state of churn.
    I think if a majority of the developers in this forum could pick one and focus one it we could get it to a resonable state. I have tried Prado, Mojavi, and WACT on some apps and have not been able to make them work for me.

    Maybe it's me, but I could never find a comfortable way scale them from small to big apps. They are irritating overkill for small apps and not flexible enough for large ones. One of the things I was hoping for with the "skeleton" code is to get a code base that a wider group of programmers could use to suit their needs. They may not all use it in exactly the same way, but it would be something to build other tools on top of. We got a good way down the road, and hopefully kyberfabrikken, Ezku, Overrunner, DougBTX, et al. can restart it at some point.
    Quote Originally Posted by lastcraft
    Regarding this thread, a tool that simulated SwitchTower would combine Phing, bits of Rephlux and either PHPUnit or SimpleTest. It would deploy Mojavi/Prado/WACT/Seagull using CVS/Subversion/Perforce with a MySql/Postgres/Oracle/Sybase/MSSql backend to Apache/ISS on Windows/Linux/OSX/Solaris.
    Would it be enough for an initial version to combine Phing, bits of Rephlux and SimpleTest, and be able to deploy a framework directory and run its install script onto Linux/Apache?
    Christopher

  10. #10
    SitePoint Guru dagfinn's Avatar
    Join Date
    Jan 2004
    Location
    Oslo, Norway
    Posts
    894
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by arborint
    I think if a majority of the developers in this forum could pick one and focus one it we could get it to a resonable state. I have tried Prado, Mojavi, and WACT on some apps and have not been able to make them work for me.
    I don't know much about either of these, so correct me if I'm wrong, but:

    WACT has the right idea in being a "Component Toolkit".

    Mojavi requires you to use inheritance to extend the Mojavi classes, creating too much intimacy between the application and the framework. If I had to use it, I would try to insert something in-between to break this heavy dependency.

    And Prado, I've only seen the front page, but I'm pretty sure an event-driven system is overkill. All you need are commands or actions. And starting out with premature, excessive architecture is bound to lead to needless complexity.

    When you say "focus one", how about focusing on a single component rather than a whole framework?
    Dagfinn Reiersøl
    PHP in Action / Blog / Twitter
    "Making the impossible possible, the possible easy,
    and the easy elegant"
    -- Moshe Feldenkrais

  11. #11
    Non-Member
    Join Date
    Jan 2003
    Posts
    5,748
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Off Topic:

    One interesting aspect that has not been featured in the discussion of frameworks and their use, or the lack of, compared to the frameworks available in Java for example, and their wide spread use and uptake, is to some extent due to cost...

    It costs a good bit more hard cash to develop a Java application than it does a PHP application, so I suppose Java developers are going to take up and adapt a freely available framework more quickly?

    Then again in saying that, these Java based frameworks are legitimate, in the sense that the frameworks are developed by professionals with numerous years of real world experience...

    PHP lacks those resources, ie People with 10+ years of real world experience with the willingness and the ability to develop freely available frameworks. Anyways there are just too many paramaters in effect to make everyone happy,

    The reason that there are so many frameworks sprouting up using PHP is that everyone has to develop their own to match their own needs, and then later release it to the unsuspecting public, and leave it to them to make what they can of it.

    Finally you have just got to remember that the vast majority of PHP developers are without a CS degree (including me), and then in saying that, a vast majority of PHP developers just do the bare minimum to get the job done, such as developing using the spagetti code approach...

    Not exactly the best approach to take to developing something solid and dependable huh?

  12. #12
    SitePoint Wizard DougBTX's Avatar
    Join Date
    Nov 2001
    Location
    Bath, UK
    Posts
    2,498
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Dr Livingston
    Off Topic:

    It costs a good bit more hard cash to develop a Java application than it does a PHP application, so I suppose Java developers are going to take up and adapt a freely available framework more quickly?
    I'm not sold on that, here's a quote from a Java guy: http://raibledesigns.com/page/rd?ent...he_most_widely

    Struts is still the most widely used, with WebWork and Tapestry the least used. Surprisingly, JSF seemed to be getting no traction among the the audiences I spoke to. Even more surprising (to me at least) was that the most popular web framework continues to be the in-house framework. The overwhelming majority of the developers I've talked to aren't even using open-source web frameworks.
    Douglas
    Hello World

  13. #13
    Non-Member
    Join Date
    Jan 2003
    Posts
    5,748
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    For me, the most impressive thing about a project like Ruby on Rails is that they can actually get more than a dozen programmers to actually agree on a direction.
    Got absolutely nothing to do with the language, ie Ruby being more benifiticial in the context of your statement, as PHP too, would have the same benifits if there wasn't as much arguements, which brings me to my point...

    It's to do with project management, and PHP doesn't have much of this at the moment is the feeling I get? If we, the PHP developers of this forum want a solid, dependable and scalable framework, first we need a spec., then we need someone to oversee it all...

    That person would chose for definite (no arguements, no ifs or buts or -BEEP- maybes), who the lead developer is to be, and in league with the overseer, and the lead developer, they both choose who develops below them, ie The team.

    Get that sorted, and then your maybe just ready to develop your solid, dependable and scalable framework. WACT is about the only thing that I can think of, than comes close to this at the moment, but it has stalled

  14. #14
    Non-Member
    Join Date
    Jan 2003
    Posts
    5,748
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    The overwhelming majority of the developers I've talked to aren't even using open-source web frameworks.
    Well, in my case, I know of a few Java developers personally and they have to work with struts, and no choice in the matter, and it's based on reducing the company's IT budget basically.

    I think there is some ground in that this would be the situation with a lot of developers on a salary, but as you point out, it's maybe not the case in every situation

  15. #15
    SitePoint Wizard
    Join Date
    Aug 2004
    Location
    California
    Posts
    1,672
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by dagfinn
    When you say "focus one", how about focusing on a single component rather than a whole framework?
    I'm not sure that is possible. The experience with the "skeleton" development was that a Front Controller is easier because it doesn't touch any application code, just other controllers. Once you get in contact with application code the number of descisions and the number of support classes needed multiplies.
    Christopher

  16. #16
    ********* Victim lastcraft's Avatar
    Join Date
    Apr 2003
    Location
    London
    Posts
    2,423
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Hi...

    Quote Originally Posted by arborint
    Would it be enough for an initial version to combine Phing, bits of Rephlux and SimpleTest, and be able to deploy a framework directory and run its install script onto Linux/Apache?
    It would be enough to add these as tasks to Phing and add some kind of transactional behaviour.

    One of the hardest parts of deployment is data porting. The data has to be backed up, then ported, then the code switched over, then the tests run, then the data porting tests run and finally if any part fails it's all rolled back. And you want the minimum of downtime during this process.

    Of course if this can all be done remotely via. ssh, all the better. A first step would be a local machine rollout though. It makes sense to use the Rephlux code for CVS or SVN checkout. That way Rephlux gets some work done on it (I am sure Jon won't mind others working on it). All this activity would result in requirements on SimpleTest that I would be happy to implement.

    At least then we would start to build a cohesive toolset.

    Regarding components, I am going to get back onto Phemto soon in alliance with Pavel (Pico porter) so as to make something final. At least that gives one solid component as a building block. Of course we would still need a Hibernate . Perhaps Propel2?

    Note that I am not recommending anyone putting extra effort in. Simply coordinating so as to avoid duplication and add interoperability.

    For my own part I am going to make the effort to go to a PHP conference or two. It's mainly by talking to other developers that progress will be made. One of the next big refactorings of SimpleTest is to make it easier to plug into IDEs (ideally Zend and PHPEdit to go with Eclipse).

    I think we can similar things going if we chat on the forum about the problems of integration more. What are the strengths and weaknesses with Mojavi for example? Anyone got any source code snippets of where they hit problems?

    yours, Marcus
    Marcus Baker
    Testing: SimpleTest, Cgreen, Fakemail
    Other: Phemto dependency injector
    Books: PHP in Action, 97 things

  17. #17
    SitePoint Guru 33degrees's Avatar
    Join Date
    May 2005
    Posts
    707
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Dr Livingston
    Got absolutely nothing to do with the language, ie Ruby being more benifiticial in the context of your statement, as PHP too, would have the same benifits if there wasn't as much arguements, which brings me to my point...
    Actually, I'd say it does have bit to do with language, in that languages like Ruby attract experienced developers who are interested in the language because of it's features, as opposed to the self-taught lone wolf types who seem to make up the majority of php programmers, and for whom php's mostly procedural nature is a benefit rather than a hindrance.

    That's another part of the problem; one of the main benefits of working with a well-developed framework is that it makes it much easier for different people to work on the same application, and since most php programmers work alone, they can get by without one. I'd hazard a guess and say that the vast majority of php programmers program procedurally, and probably don't even understand what the concept of a framework is.

    Compare this to the java side (and probably .NET, although I don't know much about that), where most development is done by teams, and a framework of some type is almost always used, and it's not surprising the open source framework situation there is much better than with PHP.

    In any case, this is getting off topic, but I agree with Marcus that it would be a good idea to discuss the strengths and weaknesses of what's currently out there as the first step in coordinating future work.

  18. #18
    SitePoint Guru dagfinn's Avatar
    Join Date
    Jan 2004
    Location
    Oslo, Norway
    Posts
    894
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by arborint
    I'm not sure that is possible. The experience with the "skeleton" development was that a Front Controller is easier because it doesn't touch any application code, just other controllers. Once you get in contact with application code the number of descisions and the number of support classes needed multiplies.
    That's fine unless the Front Controller is supposed to contain everything else like form validation, etc.

    On the other hand, I'm not sure a framework even needs a Front Controller. I can implement my own in about a half hour. What I really need is form handling and a few other things.
    Dagfinn Reiersøl
    PHP in Action / Blog / Twitter
    "Making the impossible possible, the possible easy,
    and the easy elegant"
    -- Moshe Feldenkrais


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •