soluzione a mano che sembra un plugin Eclipse
In primo luogo, scaricare e installare PHP Parser da: php-parser-github un semplice esempio vi mostrerà che è possibile ottenere il nome della classe da un dato codice sorgente
Esempio di codice sorgente
require 'vendor/autoload.php';
use PhpParser\ParserFactory;
$parser = (new ParserFactory)->create(ParserFactory::PREFER_PHP7);
try {
$stmts = $parser->parse('<?php class MyClass_SubDir {private $member;}');
var_dump($stmts);
}
catch (Error $e) {
echo 'Parse Error: ', $e->getMessage();
}
.210
L'esecuzione da linea di comando // uscita
array(1) {
[0]=>
object(PhpParser\Node\Stmt\Class_)#8 (6) {
["type"]=>
int(0)
["extends"]=>
NULL
["implements"]=>
array(0) {
}
["name"]=>
string(14) "MyClass_SubDir"
["stmts"]=>
array(1) {
[0]=>
object(PhpParser\Node\Stmt\Property)#7 (3) {
...
}
e come potete vedere, siamo in grado di ottenere tutte le classi che sono definiti nel generatore di corrente
--object(PhpParser\Node\Stmt\Class_
|
|___ name : MyClass_SubDir
Gli obiettivi qui ci sono
- estrarre il nome della directory da un nome classe, per farlo è possibile utilizzare `regex` o` explode`
- Spostare il file corrente alla directory desiderata, è possibile utilizzare la funzione `rename`
Salvare il codice php da qualche parte ... eclipse_plugin.php per esempio ..
Il passo successivo è quello di creare un file batch che verrà collegato con Eclipse
Creare un file da bagno che riceverà 2 argomenti da Eclipse
- ** $ 1 **: posizione container - il percorso assoluto del file selezionato in Eclipse
- ** $ 2 **: risorsa posizione - il percorso assoluto e il nome del file selezionato in Eclipse (avremo bisogno di soli $ 2 :-))
Nel file batch messo
php eclipse_plugin.php $1 $2
Nota: php deve essere nelle variabili d'ambiente PATH
PHP troverà i suoi argomenti in $argv[0]
e $argv[1]
Configurazione Eclipse
- andare Esegui strumenti esterni> Configurazione strumenti esterni> fai clic su Sezione programmi> Premi su Nuova configurazione di avvio
- nella Tab principale, specificare il percorso del file batch personalizzato
- anche specificare la directory di lavoro
- nella sezione Argomenti, mettere questi argomenti $ {container_loc} $ {resource_loc}
Fatto!, ora quando si rinomina la classe in Eclipse, è sufficiente fare clic sul pulsante Esegui :)
HTH
fonte
2016-01-20 10:48:35
non credo che ci sia un plugin specifico che può raggiungere le vostre aspettative, è necessario sviluppare una consuetudine routine che è possibile avviare manualmente da Eclipse per eseguire questo tipo di refactoring. –