From e50e01c2f03797ab5f9bf48a089d32b1564bd388 Mon Sep 17 00:00:00 2001 From: Libor Jonat Date: Thu, 10 Jul 2014 10:16:52 +0200 Subject: [PATCH] Initial commit --- AlexDoctrineExtraBundle.php | 9 ++ Command/DoctrineMetadataGraphvizCommand.php | 38 +++++ Graphviz/DoctrineMetadataGraph.php | 164 ++++++++++++++++++++ Graphviz/Pass/ImportMetadataPass.php | 77 +++++++++ Graphviz/Pass/InheritancePass.php | 43 +++++ Graphviz/Pass/ShortNamePass.php | 65 ++++++++ LICENSE | 21 +++ README.rst | 23 +++ Resources/demo.png | Bin 0 -> 71915 bytes composer.json | 18 +++ record | 0 11 files changed, 458 insertions(+) create mode 100644 AlexDoctrineExtraBundle.php create mode 100644 Command/DoctrineMetadataGraphvizCommand.php create mode 100644 Graphviz/DoctrineMetadataGraph.php create mode 100644 Graphviz/Pass/ImportMetadataPass.php create mode 100644 Graphviz/Pass/InheritancePass.php create mode 100644 Graphviz/Pass/ShortNamePass.php create mode 100644 LICENSE create mode 100644 README.rst create mode 100644 Resources/demo.png create mode 100644 composer.json create mode 100644 record diff --git a/AlexDoctrineExtraBundle.php b/AlexDoctrineExtraBundle.php new file mode 100644 index 0000000..7c713a4 --- /dev/null +++ b/AlexDoctrineExtraBundle.php @@ -0,0 +1,9 @@ + + */ +class DoctrineMetadataGraphvizCommand extends ContainerAwareCommand +{ + /** + * {@inheritdoc} + */ + protected function configure() + { + $this + ->setName('doctrine:mapping:graphviz') + ; + } + + /** + * {@inheritdoc} + */ + protected function execute(InputInterface $input, OutputInterface $output) + { + $em = $this->getContainer()->get('doctrine')->getManager(); + $graph = new DoctrineMetadataGraph($em); + + $output->writeln($graph->render()); + } +} diff --git a/Graphviz/DoctrineMetadataGraph.php b/Graphviz/DoctrineMetadataGraph.php new file mode 100644 index 0000000..858240e --- /dev/null +++ b/Graphviz/DoctrineMetadataGraph.php @@ -0,0 +1,164 @@ +attr('node', array( + 'shape' => 'record' + )); + $this->set('rankdir', 'LR'); + + $data = $this->prepareData($this->createData($manager)); + + $clusters = array(); + + foreach ($data['entities'] as $class => $entity) { + try{ + $clusterName = $this->getCluster($class); + if (!isset($clusters[$clusterName])) { + $clusters[$clusterName] = $this->subgraph('cluster_'.$clusterName) + ->set('label', $clusterName) + ->set('shape', 'none') + ->set('style', 'filled') + ->set('color', '#eeeeee') + ->attr('node', array( + 'style' => 'filled', + 'color' => '#eecc88', + 'fillcolor' => '#FCF0AD', + )) + ; + } + }catch(\OutOfBoundsException $e){ + continue; + } + + $label = $this->getEntityLabel($class, $entity); + $clusters[$clusterName]->node($class, array('label' => $label)); + } + + foreach ($data['relations'] as $association) { + $attr = array(); + switch ($association['type']) { + case 'one_to_one': + case 'one_to_many': + case 'many_to_one': + case 'many_to_many': + $attr['color'] = '#88888888'; + $attr['arrowhead'] = 'none'; + break; + case 'extends': + } + + $this->edge(array($association['from'], $association['to']), $attr); + } + } + + private function createData(ObjectManager $manager) + { + $data = array('entities' => array(), 'relations' => array()); + $passes = array( + new ImportMetadataPass(), + new InheritancePass(), + new ShortNamePass() + ); + + foreach ($passes as $pass) { + $data = $pass->process($manager->getMetadataFactory(), $data); + } + + return $data; + } + + private function getEntityLabel($class, $entity) + { + + $result = '{{<__class__>'.$class.'|'; + foreach ($entity['associations'] as $name => $val) { + $result .= '<'.$name.'> '.$name.' : '.$val.'|'; + } + foreach ($entity['fields'] as $name => $val) { + $result .= $name.' : '.$val.'|'; + } + $result = rtrim($result, '|'); + $result .= '}}'; + + return $result; + } + + private function getCluster($entityName) + { + $exp = explode(':', $entityName); + + if (count($exp) !== 2) { + throw new \OutOfBoundsException(sprintf('Unexpected count of ":" in entity name. Expected one ("AcmeDemoBundle:User"), got %s ("%s").', count($exp), $entityName)); + } + + return $exp[0]; + } + + private function getBundleName($name) + { + $name = explode('\\', $name); + $bundleName = ''; + foreach($name as $n){ + $bundleName .= ucfirst($n); + if(substr_count($n, 'Bundle') > 0){ + break; + } + } + return $bundleName; + } + + private function getEntityName($originalName) + { + $name = explode('\\', $originalName); + foreach($name as $k => $n){ + unset($name[$k]); + if(substr_count($n, 'Bundle') > 0){ + unset($name[$k + 1]); + break; + } + } + return implode('', $name); + } + + private function transformName($name) + { + if(substr_count($name, ':') < 1 && substr_count($name, 'Bundle') > 0){ + return "{$this->getBundleName($name)}:{$this->getEntityName($name)}"; + } + return $name; + } + + private function prepareData(array $data){ + foreach($data as $key => $value){ + unset($data[$key]); + $newKey = $this->transformName($key); + $data[$newKey] = $value; + + if(is_array($value)){ + $data[$newKey] = $this->prepareData($value); + }else{ + $data[$newKey] = $this->transformName($value); + } + } + return $data; + } + +} diff --git a/Graphviz/Pass/ImportMetadataPass.php b/Graphviz/Pass/ImportMetadataPass.php new file mode 100644 index 0000000..9411859 --- /dev/null +++ b/Graphviz/Pass/ImportMetadataPass.php @@ -0,0 +1,77 @@ +getAllMetadata() as $classMetadata) { + $class = $classMetadata->getName(); + + $data['entities'][$class] = array( + 'associations' => array(), + 'fields' => array(), + ); + + foreach ($classMetadata->fieldMappings as $name => $config) { + $data['entities'][$class]['fields'][$name] = $config['type']; + } + + // associations + foreach ($classMetadata->getAssociationMappings() as $name => $mapping) { + $field = $mapping['fieldName']; + $targetEntity = $mapping['targetEntity']; + + $type = ''; + switch ($mapping['type']) { + case ClassMetadataInfo::ONE_TO_MANY: + $type = 'one_to_many'; + break; + case ClassMetadataInfo::ONE_TO_ONE: + $type = 'one_to_one'; + break; + case ClassMetadataInfo::MANY_TO_ONE: + $type = 'many_to_one'; + break; + case ClassMetadataInfo::MANY_TO_MANY: + $type = 'many_to_many'; + break; + default: + throw new \RuntimeException('Unkown association type '.$mapping['type']); + } + + $label = $targetEntity; + if ($type == 'one_to_many' || $type == 'many_to_many') { + $label .= '[]'; + } + + $data['entities'][$class]['associations'][$field] = $label; + + if ($mapping['sourceEntity'] === $mapping['targetEntity']) { + continue; + } + + $from = array($mapping['sourceEntity'], $field); + $to = array($mapping['targetEntity'], '__class__'); + + foreach ($data['relations'] as $relation) { + if ($relation['from'] === $from) { + continue 2; + } + } + + $data['relations'][] = array( + 'from' => $from, + 'to' => $to, + 'type' => $type + ); + } + } + + return $data; + } +} diff --git a/Graphviz/Pass/InheritancePass.php b/Graphviz/Pass/InheritancePass.php new file mode 100644 index 0000000..485f9ce --- /dev/null +++ b/Graphviz/Pass/InheritancePass.php @@ -0,0 +1,43 @@ +getAllMetadata() as $classMetadata) { + $actual = $classMetadata->getName(); + + $current = $classMetadata->getReflectionClass(); + while (false !== ($current = $current->getParentClass())) { + $name = $current->getName(); + if (isset($data['entities'][$name])) { + $data['relations'][] = array( + 'from' => array($actual, '__class__'), + 'to' => array($name, '__class__'), + 'type' => 'extends' + ); + + break; + } + } + + // Inherited properties + foreach ($classMetadata->getReflectionProperties() as $property) { + $class = $property->getDeclaringClass()->getName(); + $name = $property->getName(); + + if ($class !== $actual && isset($data['entities'][$class]['fields'][$name])) { + unset($data['entities'][$actual]['fields'][$name]); + } + } + + } + + return $data; + } +} diff --git a/Graphviz/Pass/ShortNamePass.php b/Graphviz/Pass/ShortNamePass.php new file mode 100644 index 0000000..8adfa2a --- /dev/null +++ b/Graphviz/Pass/ShortNamePass.php @@ -0,0 +1,65 @@ + $entity) { + $shortName = $this->shortName($name); + unset($data['entities'][$name]); + $data['entities'][$shortName] = $this->filterEntity($entity); + } + + foreach ($data['relations'] as $i => $relation) { + $data['relations'][$i] = $this->filterRelation($relation); + } + + return $data; + } + + protected function filterEntity(array $entity) + { + foreach ($entity['associations'] as $i => $association) { + $name = $association; + $multiple = false; + if (preg_match('/\\[\\]$/', $name)) { + $multiple = true; + $name = substr($name, 0, -2); + } + $shortName = $this->shortName($name); + if ($multiple) { + $shortName .= '[]'; + } + + $entity['associations'][$i] = $shortName; + } + + return $entity; + } + + protected function filterRelation(array $relation) + { + $relation['from'][0] = $this->shortName($relation['from'][0]); + $relation['to'][0] = $this->shortName($relation['to'][0]); + + return $relation; + } + + protected function shortName($name) + { + if (preg_match('/^(\w+)\\\\(?:Bundle\\\\)?(\w+)Bundle\\\\Entity\\\\(.*)$/', $name, $vars)) { + if ($vars[1] == $vars[2]) { + $vars[2] = 'Pha'; + } + + return $vars[2].':'.$vars[3]; + } + + return $name; + } +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..4a77365 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2013 Alexandre Salomé + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..20aa52c --- /dev/null +++ b/README.rst @@ -0,0 +1,23 @@ +DoctrineExtraBundle +=================== + +Graph tool for Doctrine. Relies on `Graphviz `_. + +.. image:: Resources/demo.png + +Usage +----- + +**Dump entity manager schema as graph** + +.. code-block:: bash + + $ php app/console doctrine:mapping:graphviz + digraph G { ... } # outputs a dot graph + +If you want to create a PDF file out of it, with Linux: + +.. code-block:: bash + + $ php app/console doctrine:mapping:graphviz | dot -Tpdf -oout.pdf + $ xdg-open out.pdf diff --git a/Resources/demo.png b/Resources/demo.png new file mode 100644 index 0000000000000000000000000000000000000000..fa6160308fde2bb138542f97654ae13c4b2a6f53 GIT binary patch literal 71915 zcmdSBcT^N#v-dlIq7nrpNK~>U0m&H|a)u!%$vH^Qphyw{k(^-=Ndl53D@c|chKzvZ zA?JKI`g_hf>z?Pl_r7br_mA7MWERuY-Lt!P?W#|GtHV{4q_HtbF(42KwyX?P4Fb7! z0)e1n-bDp}Ioq!i1HaHszjXBjd`&U$Rmg>R2=4+hMe)xetlNXJoXo@ehwJZ*CF@Nk?cUm7dc3uolz^*B3N>rLU_ z-`hL8I^TX6^5igHO|*My&uwF@@p#rpNl7VPzzqWjr=)iue60aTa)UeI+$sSSLZ0u# z+M_6Xt^(GEa=|wt5%OfO=Vf59{1%8(P*4Dc>FYOG_Gfr(&&KQZ|4e@NRR60OG&nf8 zCxO+)!^5cA|8lV-dZLkx$8P87h?2wPO^Qs@#h$#mGZ`6~pk*Jqi_89FiI9<>USJZC z5H;M`8KaS|uCA38V`l#~vZ6n1b-!P9W&f1daaKWA))>=nvhoQx_vq;8;l=5`<7@-J z$Cf@63a!{7nI9oS)l+{SZ5CI+Imne_@48vp|Kx6WQYb(-oGyf zovOAks&xTp`^S2_iOI=X5_|4ok-RW9m4Nc_@K6O@ls(Vpb6vf!_iJyd2U=;-o5E&L zmz13BwmIoGTBxz4S>=D}Eh;LCi5VdoL4>C&E-qfcT58m+N%gZ|^m@9~2)u(yOib+l zZ6|{Gsm+!?Fw(!%CeWE3tChaeuGxI->&wNk)t&iP5+k^j2ywQ|`x)4Zu=X`ZN3c`*H8y4U3GtJliN` zWnr1DvL(jDD|1~_GibvCN09T(!34H5xx3iWX7aMeVMflp7W#W(VW?P-w@lmj;$*kh zWrfFj=yz`_ZxA}Rvzr^RvYqqo=F-?eaAq;W8^;nj1WW8^wf&jIVfRo^Zwibb`mI}B zHY1(w?H1q&dNmHk!(w3XEFmdU%Vrh22N-ntvYV3sI4>29=#FR4o((q%{rRroq5{Rm z;oz!nHuT#!6YpjtdGKe7fmbh7-ro!g*#7^q^{^u5TBK2*2^?Hc@;*dl_p2 zck|7o{9Gx(um+;bxY|Z3$ShzP+(B`RGL`a`1}{_`JKxYMeAA! zhx2#5ukLO9yOB3Y1XlsRmo}oQXG=6}Yv<{<53i=JdWNa+yD&2^h9ch|>xgeAB+Cb< zbGYP9hdVFr+?5_j_v|`(ASY`_PgI2k+^kf$%52sLUhMpHZ&!;tS8I-`pag@h(q*Oa z*^_G5Q8(x$6AOMMmVN*??ekhmrugP}3jPn18|;rq>lDmmgve)Z3af)-zBr%&y5JdzWSP@r!JVRpAnZv=r8I#mz`SWZDn=$ z&rEeKu$?m}-!M-1VI3?N>hLBxUv2CzGzu#0ZpVeF1btLH{hm`3Zq-^C4t3pGwGW4W z+Q_PO=B8b^SPIolh}_cGtNj)6-LN;^Q%H$M-Jd!0lREuDt&3Z33EHj3P^i|^HS78> za53n4zdjQ9x(8C4TwZg%RKU8&WEwD7cP`0ns)mrZ5o0&iF;$Z!G@|+9qd8`xT)OjwkJirM zmkcybE_X6Sr}3Nq^NPgJhrL)_s*J|8W znycI%=zaZM)mv)zHC=tbkw4#yljG2+;H4$Z3KtBmV$p}bTnc{d&z9{^k3w5z9m{F) zbzlnJaTCpHeEWKm!4qT1fmi8FUhUW4*nfU4AY)L##lQ?mHd0}U>0BTfLf8wO8_${F z4u&&zpogG@ms|}VyFZ3N#n>Xn2;-S*I`co zWQ8W{jkYM^rg9t3$rfu^KMFIO{;9+wTR8M+v3>Z;fLNC=vfPPuY0hoFPSG+~t@i8% zlaJbJ;hh(dBTB6J9zuyb?&Vb+4AgpL`;XBCm>&FW`qgadY_cscZky-2v0&*yzdAd* zoyQ&9Q@n}59-cg@)zeL4)8k4D+rxY-Zyz3^tWMP*)mwpn;OJ;=yuNNyV|++U?R`XD zW}#GtT7MLJUv+2ec5CR>R7qKGLEy2tbf!c-@%_QI{bM&WvQ=_?1L2(Q&FA)=W_zrH zrLJogBNMjpg3FZ>);wPk|IJ9f{|&B%e~RjcFv_6m?afcnfYTExaUM?@13B13ib}%}E|p zQ9gd%#Cp07gI8zo>)fyEEpT~#sDUHWfQ=8%ri9_gJ{v_8%tj=3K}T$VVfZihdser4 zRkzmiwCYu+YE&=Fwf!-?3}ATKJQn`7ZhdfyX3=+D-dd01yN8Edl+)|y99OSZ&818f zl86p^j(WiCcdmt>Jw_3W9NwVxnEY|QUmXEVG9~q%zpn6;-BEYr_LzEvCeFhF)ytAB zR^qLTqwdLWyOpOE!wW|r+cqc4ysC49*NO$7zOL5KM@mX*3FqsWl<_eztbm2QtgP&* zQIjtSy{G~P-K?+&!G4Ae7WY-Jm7CO$dRDKyJfH^x9E)S=#PP-NDTt(@Qc_Y&4yt~) z)!1GI7F~S){E?c<_24nQf|v@%qoiRc<6QfkO^fltyXW5-gIErozNnSGG8TguDIYW% zHsAPI^ zCwiJ5?#7I^@{?qsQr1)?^BfpY?02K0Ik%G&3ToYE8z<6BZWcx%XREUtizQkg}EC!ongdDryUS+azq&0xb%{P5b37F{sD3 zB$G#QaC714w@NO57%sJL{jRHmzD+#yuKki6^jHFsFH%v|(kjSv7~jP-^Add>te
gXDHDIfp~3 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 W(_e|ff^}Dy^-4kxTKN3U$NvC2;U@I} literal 0 HcmV?d00001 diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..931c770 --- /dev/null +++ b/composer.json @@ -0,0 +1,18 @@ +{ + "name": "alexandresalome/doctrine-extra-bundle", + "description": "Extra features for Doctrine, as a Symfony bundle", + "license": "MIT", + + "autoload": { + "psr-0": { + "Alex\\DoctrineExtraBundle": "" + } + }, + + "target-dir": "Alex/DoctrineExtraBundle", + + "require": { + "doctrine/orm": "~2.3", + "alom/graphviz": "~1.0" + } +} diff --git a/record b/record new file mode 100644 index 0000000..e69de29