31 votes

PHP peut-il gérer des sites de niveau entreprise ainsi que Java?

S'IL VOUS PLAÎT PAS FLAMBOYANT!

J'ai vraiment aimerais quelques avis objectif sur la question. J'ai un projet qui a été fortement développé en PHP, mais vous avez des clients qui sont concernés que Java serait une meilleure solution. Je sais que des sites tels que Flickr et Digg sont exécutés sur PHP, mais je crains que PHP est le manque d'un environnement d'exécution peut détruire mon projet.

Exemple. PHP (que je connais) n'a pas de moyen facile de fourche un autre processus, ni est-il un moyen facile de démarrer un démon pour exécuter des processus d'arrière-plan (cron jobs sont un peu moche).

Je n'aimerais pas à réécrire un grand morceau de logiciel, donc je suis dans le besoin de quelques conseils.

49voto

Eran Galperin Points 49594

Eh bien, si vous savez Digg et Flickr sont exécutés sur PHP, alors vous connaissez déjà la réponse. Je vais ajouter un peu plus: Wikipedia, Facebook et Yahoo.com. Si vous pensez que votre site sera de même pour ceux, bonne chance...

Ce que vous appelez un "manque d'environnement en cours d'exécution" peut en fait être considérée comme un atout - les erreurs sont contenues dans l'auto instances en cours d'exécution et ne se propagent pas à d'autres ressources partagées, ce qui pour un environnement plus stable. Bien sûr, vous avez à traiter avec le partage commun de données d'une manière efficace, mais cela fait partie du jeu. La mise en cache, le chargement paresseux et d'autres techniques permettent de résoudre qu'une partie de l'équation.

Aussi, il est assez commun à mélanger PHP et Java à l'aide d'un pont, d'où Java peut gérer backend tâches qui nécessitent une plus longue d'exécution ou d'optimisations spécifiques.

17voto

Ian P Points 7930

J'ai écrit une entreprise de niveau application qui génère une quantité importante de revenus, tout en PHP.

Je ne utiliser des choses comme des tâches cron pour faire le traitement de fond, "bifurquer" par exec pour frayer d'autres procédés que j'ai moniteur à partir d'une ressource externe (comme une base de données ou un référentiel xml.)

Il y a quelques questions qui ont été abordées dans les versions récentes de PHP et de divers produits de Zend, comme le redimensionnement, le clustering, etc. C'est, à mon avis, était une étape positive pour PHP.

Cependant, à partir d'une perspective de programmation, PHP lefts beaucoup à désirer. La cohérence est absente dans les noms de fonctions, de canard frappe n'est pas une bonne chose de mon point de vue, le pseudo orientée objet support est frustrant, etc.

Mais, en résumé, oui, il est adapté pour les applications de niveau entreprise à utiliser PHP lorsqu'il est utilisé correctement avec des normes raisonnables et une bonne quantité de la pensée mettre dans votre conception.

Bonne chance!

8voto

Svet Points 1432

Je ne serai probablement pas tout à fait juste depuis que j'aime php, mais c'est un langage incroyablement mature et répandu qui convient parfaitement aux applications d'entreprise. Même si la performance était légèrement inférieure à Java, l'écart serait minime - je ne pense cependant pas que ce soit le cas.

Bien sûr, cela ne vaut pas la peine de réécrire votre application en Java.

8voto

serg Points 43893

PHP peut-il gérer des sites de niveau entreprise? Oui.

Gérer aussi bien que Java? Non.

Que cela vaille la peine d'être réécrit ou non dépend de vos fonctionnalités. Nous avons réécrit notre projet en utilisant des threads java et le gain de performance a été d'environ 10x. Si vous voulez savoir si vous voulez gagner de la vitesse de conversion de php en java, je dirais très probablement que oui.

Je voudrais essayer d'optimiser le code PHP autant que possible d'abord, si cela ne suffit pas, alors allez java.

(J'aime à la fois php et java btw)

6voto

Doug T. Points 33360

Cela sonne comme vous, sont essentiellement préoccupés par l'absence de certaines de ces fonctionnalités dans l'environnement.

Ce n'est pas le tout enveloppé ensemble comme dans le Java runtime, mais voici comment vous pouvez fourche en php:

Voici une façon de fourche:

$arg1 = 'argv1';
$arg2 = 'argv2';
system("php ./script2.php $arg1 $arg2 &");

http://www.php.net/system

ou

$output = shell_exec('script2.php &');

http://www.php.net/shell_exec

Et comme vous l'avez déjà dit, une tâche peut faire fond/traitement périodique.

Sinon, il semblerait que vous ayez un problème de communication avec vos clients. Justement, quelles sont leurs préoccupations? Les clients sont d'autres logiciels d'ingénieurs? Sont-ils prêts à payer pour la conversion en Java? Sont-ils tout nouveau sur php? Sont-ils non-technophiles et ont entendu dire que Java est cool"?

Si les performances n'importe, quelles recherches avez-vous fait dans l'optimisation de php? Avez-vous regardé le cache php opcodes pour améliorer les performances? Juste google php cache opcode pour plus d'info.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X