[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

PHP developers workflow discussion

this thread is meant to start discussion about the possible improvements
for the PHP (and other interpreted scripting languages) developers.

1) Self-modifying apps, built-in installers

PHP frameworks often use the self-modifying functionality of it's own
source files. Not just for storing the application settings, but also
for updating/installing the functionality.

As an example, both Wordpress/Drupal have built-in installers that can
be used via the administration; so the site admins are able to
update/install new plugins and themes on-the-fly.

Normally, all the changes are made in the app's source code itself:
 Drupal: app-root/repo/php/sites/*/{modules,themes}
 Wordpress: app-root/repo/php/wp-content/{plugins,themes}

This is nothing we would like on OpenShift, right? Because whenever
the Developer git pushes, these changes are all wiped out..

So what's the workaround? They could probably use the persistent storage
(symlink the directories in git relatively to the $OPENSHIFT_DATA_DIR),
- but is that enough? Would that be even maintainable?

2) SFTP to the app-root/repo/

 - By the way, this is the default workflow used by the Zend Studio
   while developing the Zend apps on OpenShift right now..

I've talked to many PHP developers about their feel and satisfaction
with the OpenShift PaaS and most of them told me they really hate the
"slow" git push deployment.

They can't develop on OpenShift as quickly as they're used to, so
they're basically forced to use their own local Apache for development.

This is against the whole PaaS idea; and also far-away from the ideal
test/production release management.. See

What the PHP developers call for is usually the SFTP/FTP access to
the app-root/repo/ directory using their favorite IDE to be able
to make the changes on-the-fly. Why? The thing is, that PHP is kind
of those "Try it and see if it works." languages.


So what comes to my mind to improve the usability for the PHP developers
(and to be able to use PHP apps with self-modifying functionality) is:
- let them access the app-root/repo/ for development (well, they can
  do it right now, until they git push and wipe-out all the changes..)
- let them decide if the app-root/repo/ was git repository or not
(means do not remove the .git/ metadata when cloning from bare git repo)
- let them git commit/push from that gear's repository using SSH
- let them git commit/push from Web Console (as in advanced Cloud IDEs)
- let them do the above also using the popular Cloud IDEs (eg. Cloud9)

We would need of course to think of the possible git conflicts that
would come with the app-root/repo/ git repository. But in my opinion,
this all would be wort it.

- Vojtech

Vojtech Vitek
Red Hat, Inc.
Brno, Czech Rep.
GSM: +420608260892

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]