Giter VIP home page Giter VIP logo

Comments (7)

mamchenkov avatar mamchenkov commented on July 30, 2024

Excellent question @lalop ! 😄

@jaz303 seems to be active on GitHub (last public activity on March 15th), but the project does seem to be a bit slow (last commit back in December 2014).

I'd be interested in helping out with this project. We use it heavily at @QoboLtd via phake-builder

from phake.

jaz303 avatar jaz303 commented on July 30, 2024

project is alive albeit it's been mostly maintenance/bug-fix work for the past couple of years. what features would everyone like to see?

from phake.

mamchenkov avatar mamchenkov commented on July 30, 2024

@jaz303 I'd love to have a more elegant way to extend the project with task collections. Currently, we are doing so with lots and lots of Phakefiles, which use other, more generic libraries, but it all is a bit cumbersome. I think if there was a better, standard way, it would be much easier for people to share snippets with one another.

from phake.

jaz303 avatar jaz303 commented on July 30, 2024

so are we talking about a way of including other Phakefiles? maybe a standardised set of search locations?

from phake.

mamchenkov avatar mamchenkov commented on July 30, 2024

Yes, sounds about right. I was also thinking in the direction of a namespace maybe, so that sharing via composer, for example, could be easier.

from phake.

jaz303 avatar jaz303 commented on July 30, 2024

Can you explain a bit more, possibly with some syntax examples?

from phake.

mamchenkov avatar mamchenkov commented on July 30, 2024

@jaz303 sorry for a delayed reply - lost this thread for a while.

In my company we use phake for building all our client projects. Some things are reusable everywhere (like git tasks, for example). Some are reusable only on the subset of projects (like WordPress-specific tasks, for example). And some are unique to a project.

Currently, we use QoboLtd/phake-builder for all the things that are common. And then we use a variety of boilerplate/template projects (for example: QoboLtd/project-template-wordpress which add platform-specific tasks to Phakefile.

Overall, this works, but lacks elegance and flexibility. As you can see, for example, in QoboLtd/phake-builder we have a whole bunch of common tasks, which we separate into different Phakefiles (Phakefile.git, Phakefile.mysql, etc) and then we load all of them from the central one.

It would be awesome if we could break that up into some kind of Phake plugins (a plugin to share git tasks, a plugin to share mysql tasks, etc), and then include those plugins with composer as needed for each project. A few tools already do exactly that using composer installers, which is the preferred way. Some other projects use fixed vendor name - for example WordPress themes and plugins can be installed so from WordPress Packagist.

Grouping common phake tasks and separating them into modules/plugins would make it easy to share them between projects, companies, and people. I think it will also help increase phake adoption, since it will be easier for projects to ship their specific tasks (WordPress or CakePHP, for example), while reusing other common tasks (like git and MySQL).

From what I can see, Phing is popular this way now. And I think part of it is because it bandles common tasks for ssh, ftp, version control, etc right into the tool, and makes it easier to add/customize them too.

from phake.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.